admin 管理员组

文章数量: 887007

java字符串如何转uni,我怎么可以转换UNI code字符串在Java中为ASCII

I'm now trying to convert unicode font to ascii in android. I wrote following coding to convert unicode font to ascii but it's failed. Because result cannot display properly after being converted.

unicode font = 'ေနေကာင္းပါသလား' to something like '\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;

}

解决方案

use java.text.Normalizer class to convert from unicode to ascii. here is a sample code from the answer

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());

本文标签: java字符串如何转uni 我怎么可以转换UNI code字符串在Java中为ASCII