[英]Get Unicode Encoded Characters (Kannada Lanuguage) from given String
String s1="\u0048\u0065\u006C\u006C\u006F"; // Hello
String s2="\u0CAE\u0CC1\u0C96\u0CAA\u0CC1\u0C9F"; // ಮುಖಪುಟ (Kannada Language)
System.out.println("s1: " + StringEscapeUtils.unescapeJava(s1)); // s1: Hello
System.out.println("s2: " + StringEscapeUtils.unescapeJava(s2)); // s2: ??????
當我打印s1
,得到的結果為Hello
。 當我打印s2
,得到的結果是???????
。
我希望輸出為s2
ಮುಖಪುಟ
。 我該如何實現?
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
ps.println("\u0048\u0065\u006C\u006C\u006F \u0CAE\u0CC1\u0C96\u0CAA\u0CC1\u0C9F");
String output = os.toString("UTF8");
System.out.println("result: "+output); // Hello ಮುಖಪುಟ
您需要添加類似“ UTF-8”的編碼,請嘗試以下操作
String s1="\u0048\u0065\u006C\u006C\u006F"; // Hello
String s2="\u0CAE\u0CC1\u0C96\u0CAA\u0CC1\u0C9F"; // ಮುಖಪುಟ (Kannada Language)
System.out.println("s1: " + new String(s1.getBytes("UTF-8"), "UTF-8"));
System.out.println("s2: " + new String(s2.getBytes("UTF-8"), "UTF-8"));
如果您使用的是Eclipse
請查看: https : //decoding.wordpress.com/2010/03/18/eclipse-how-to-change-the-console-output-encoding/
請簡單地在控制台上輸出如下:
String s1="\u0048\u0065\u006C\u006C\u006F";
String s2="\u0CAE\u0CC1\u0C96\u0CAA\u0CC1\u0C9F";
System.out.println("s1: " + s1); // s1
System.out.println("s2: " + s2); // s2
希望對您有幫助。
問題很可能是System.out
不准備處理Unicode。 它是一種輸出流,該流以所謂的默認編碼進行編碼 。
默認編碼通常是(例如,在Windows上)一些專有的8位字符集,這些字符集根本無法處理unicode。
我的提示:為了進行測試,請使用UTF-8編碼創建自己的PrintStream或PrintWriter。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.