分别用Java将(C),(R),(TM)和(o)转换为©,®,™,°

时间:2013-06-18 12:17:52

标签: java java-ee tomcat6

我想分别将(C),(R),(TM)和(o)转换为©,®,™,°。

我正在用各自的符号替换包含上述字符的字符串。示例代码段如下所示

public static String convertSpecialCharacters( String source ){

     if( isNotEmpty( source ) ){
         source = source.replaceAll( "\\(o\\)", "°" ).replaceAll( "\\(C\\)", "©" ).replaceAll(  "\\(R\\)", "®" ).replaceAll( "\\(TM\\)", "™" );
     } 
}

当我传递字符串“Sample text©®°™”时,我得到以下输出。

“示例文本¬¬Æ¬∞,Ñ¢”。

当我在本地计算机上运行时,符号会按预期转换但是当我在tomcat服务器上部署应用程序时,我得到上面的输出。

是否与tomcat服务器有关?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

问题已解决。而不是使用特定符号替换字符串替换为unicode字符,如下所示。

public static String convertSpecialCharacters( String source ) {          
     if( isNotEmpty( source ) ){
          source = source.replaceAll( "\\(o\\)", "\u00B0" ).replaceAll( "\\(C\\)", "\u00a9").replaceAll(  "\\(R\\)", "\u00AE" ).replaceAll( "\\(TM\\)", "\u2122" );
     } 
}