comment puis-je convertir une chaîne unicode en ASCII en java


J'essaie maintenant de convertir la police unicode en ascii dans Android. J'ai écrit le codage suivant pour convertir la police unicode en ascii mais il a échoué. Parce que le résultat ne peut pas s'afficher correctement après avoir été converti.

Police Unicode = 'ေ နေကာင္းပသလား' à quelque chose comme '\ u100F \ u1039 \ u100D'

public static String toJAVA (String zawgyi) {
    String output = "";
    char[] charArray = zawgyi.toCharArray();

    for (int i = 0; i < charArray.length; i++) {
        char a = charArray[i];
        if ((int) a > 255) {
            output += "\\u" + Integer.toHexString((int) a) + "--";
        } else {
            output += a;
        }
    }       
    return output;
}
Author: Esailija, 2013-03-12

1 answers

Utiliser java.texte.Classe Normalizer pour convertir d'unicode en ascii. voici un exemple de code de la réponse https://stackoverflow.com/a/2097224/931982

String s = "口水雞 hello Ä";

String s1 = Normalizer.normalize(s, Normalizer.Form.NFKD);
String regex = Pattern.quote("[\\p{InCombiningDiacriticalMarks}\\p{IsLm}\\p{IsSk}]+");

String s2 = new String(s1.replaceAll(regex, "").getBytes("ascii"), "ascii");

System.out.println(s2);
System.out.println(s.length() == s2.length());
 6
Author: stinepike, 2017-05-23 12:16:09