小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

\u5317\u4eac\u5e02 如何轉(zhuǎn)換成中文[北京市]

 CevenCheng 2012-04-28
問個java字符編碼的問題,中文字符用utf8編碼,我直接System.out.println("\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7")能夠在控制臺上打印正出中文來,但是如果\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7在文件中,從文件中讀出來再在控制臺輸出,則輸出的還是\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7,若要從文件中讀出的時候也能夠正確顯示其代表的中文字符,該如何處理?

引用樓主 javacjavacjavac 的帖子:
問個java字符編碼的問題,中文字符用utf8編碼,我直接System.out.println("\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7")能夠在控制臺上打印正出中文來,但是如果\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7在文件中,從文件中讀出來再在控制臺輸出,則輸出的還是\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7,若要從文件中讀出的時候也能夠正確顯示其代表的中文字符,該如何處理?

答:當在程序中的字符串"\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7"表示時,\u5e7f其實在機器內(nèi)部是一個UNICODE值(不是由這6個字符組成的串)。而文本文件中的\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7,其\u5e7f就不是一個UNICODE值,而是由這6個字符組成的串。因此需要轉(zhuǎn)換。
轉(zhuǎn)換的方法代碼參考如下:
Java code
public static String convert(String utfString) { StringBuilder sb = new StringBuilder(); int i=-1; int pos=0; while((i=utfString.indexOf("\\u",pos))!=-1) { sb.append(utfString.substring(pos,i)); if(i+5<utfString.length()) { pos=i+6; sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16)); }//if }//while return sb.toString(); }

用該方法測試的結(jié)果如下:
若:文本文件中的串是:ab\u5e7fdd\u5ddeew\u5e02qq\u531721\u4eac\u8def39\u53f7
則:結(jié)果是:ab廣dd州ew市qq北21京路39號

以上僅供你參考

==============
面少打了一句話。

而如果寫在了文件里,那在讀的時候,\ 會自動轉(zhuǎn)換為\\  
也就是,實際讀取出來的是:  

Java code
\\u5e7f\\u5dde\\u5e02\\u5317\\u4eac\\u8def39\\u53f7



所以輸出的時候,看到的是文件里保存的字符串,  

而不是
Java code
"廣州市北京路39號

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多