java中如何将unicode字符串转换为ASCII

2023-11-27

我现在正在尝试在 android 中将 unicode 字体转换为 ascii。我编写了以下代码将 unicode 字体转换为 ascii 但失败了。因为转换后结果无法正常显示。

unicode 字体 = 'နေကောင်းပါသလား' 类似于 '\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;
}

使用 java.text.Normalizer 类将 unicode 转换为 ascii。这是答案中的示例代码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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中如何将unicode字符串转换为ASCII 的相关文章

随机推荐