簡體   English   中英

從給定的字符串中獲取Unicode編碼字符(卡納達語語言)

[英]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.

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