簡體   English   中英

如何在Java中將Unicode字符串轉換為ASCII

[英]how can I convert unicode string to ASCII in java

我現在正在嘗試將unicode字體轉換為android中的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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM