Convertir (C), (R), (TM) et (o) en©,®,™, ° repectivement en Java


Je veux convertir (C), (R), (TM) et (o) en ©, ®, ™, ° repectively.

Je remplace la chaîne qui contient les caractères mentionnés ci-dessus par leurs symboles respectifs. Exemple d'extrait de code illustré ci-dessous

public static String convertSpecialCharacters( String source ){

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

Lorsque je passe la chaîne "Sample text©®°™", j'obtiens la sortie suivante.

" Exemple de texte © Æ ∞ 'Ñ¢".

Les symboles sont convertis comme prévu lorsque je m'exécute sur une machine locale, mais lorsque je déploie l'application sur un serveur tomcat, j'obtiens ce qui précède sortie.

Est - ce quelque chose à faire avec le serveur tomcat?

Toute aide appréciée.

Author: Usha, 2013-06-18

1 answers

Le problème résolu. Au lieu de remplacer la chaîne par un symbole spécifique, remplacez par les caractères unicode comme indiqué ci-dessous.

public static String convertSpecialCharacters( String source ) {          
     if( isNotEmpty( source ) ){
          source = source.replaceAll( "\\(o\\)", "\u00B0" ).replaceAll( "\\(C\\)", "\u00a9").replaceAll(  "\\(R\\)", "\u00AE" ).replaceAll( "\\(TM\\)", "\u2122" );
     } 
}
 2
Author: Usha, 2013-07-08 03:35:37