1

我想将 (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服务器有关吗?

任何帮助表示赞赏。

4

1 回答 1

3

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

public static String convertSpecialCharacters( String source ) {          
     if( isNotEmpty( source ) ){
          source = source.replaceAll( "\\(o\\)", "\u00B0" ).replaceAll( "\\(C\\)", "\u00a9").replaceAll(  "\\(R\\)", "\u00AE" ).replaceAll( "\\(TM\\)", "\u2122" );
     } 
}
于 2013-07-08T03:35:37.170 回答