亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

說一說Java的native2ascii中的encoding

系統 2007 0

?? ? 如果大家處理過多語言資源,那么對JDK這個自帶的native2ascii肯定不會陌生,它能夠幫我們把不同的編碼轉化成統一的unicode編碼,來實現國際化。

?? ?一般我們都這么用,假設我們有這么一個文件zh.txt,其內容只有這么一行:


?? ?

?? ?然后我們使用native2ascii來將其內容轉成unicode編碼:

?

?? ?

?

?? ?很簡單,但是你考慮過zh.txt文件的編碼了嗎?如果這個zh.txt文件是別人提供給你的,可能里面是采用了別的編碼,那么如果僅僅是通過簡單的native2ascii zh.txt是不可以的。

?

?? ?很慶幸,native2ascii這個工具本身提供了一個encoding選項,但是,這個encoding選項是代表什么意思呢?網上大多數人都認為,這個是指生成的目的文件的編碼,如,

?

?? ?

?

?? ?則表示將zh.txt轉成ISO 8859-1編碼,真的是這樣的嗎?

?

?? ?還有一些人認為,這個encoding選項所指的是,源文件即zh.txt的編碼格式,這個解釋有點貼近,但仍不讓我滿意,這個encoding選項指的應該是native2ascii工具讀取源文件zh.txt所采用的編碼方式,如對于上面的iso-8859-1的例子,則表示native2ascii工具將采用iso-8859-1編碼格式來讀取源文件zh.txt,并將其內容轉化成unicode編碼格式。這樣有什么用呢?這個就像我前面說的,可能這個源文件zh.txt可能是別人在他自己的機器上編寫并提供給你的,要知道linux上默認的編碼格式是ISO 8859-1,而window上一般是GBK(對于中文系統),如果我們用GBK的編碼格式來讀取ISO 8859-1編碼的內容,可想而知,會發生什么樣的錯誤。

?

?? 這個也就是下面兩個不同的native2ascii使用都有一樣的輸出的原因:

?

???

?

?? 這里沒有指定encoding選項,則采用操作系統默認的編碼格式來讀取解析zh.txt文件(這里默認是GBK)

?

???

?

?? 這里明確指定了GBK encoding選項,可以看到跟上面的輸出一致。

?

?? 最后再讓我們以代碼來驗證下以上的說法:

?? 還是zh.txt文件,讓我們以utf-8的編碼來讀取它,

?

???

?

?? 可以看到輸出為\u04ac\ufffd\ufffd,

?

?? 如果我們是通過代碼來以utf-8的編碼來讀取源文件再轉成unicode,會不會結果也是\u04ac\ufffd\ufffd呢?

?

?? ?

    BufferedReader br = new BufferedReader(new InputStreamReader(
				new FileInputStream(new File(
						"C:\\Documents and Settings\\yeson\\zh.txt")), "utf-8"));
		String line = null;
		while ((line = br.readLine()) != null) {
			for (char c : line.toCharArray())
				System.out.println((byte) c);
		}

		System.out.println();//new line
		
		char[] utf8 = new char[] { '\u04ac', '\ufffd', '\ufffd' };
		for (char c : utf8)
			System.out.println((byte)c);

  
?

?? 輸出:


??? 說一說Java的native2ascii中的encoding

?

?? 可以看到,實際上是一樣,java中的char本身就是unicode.

?

?

?? 而如果-encoding和-reverse選項并存,則這里的encoding則表示將以什么樣的編碼格式寫入文件,如:???


???

?

?? 這個表示將轉換后的文件以utf8的編碼格式寫入文件utf8.txt.

?

?

?

說一說Java的native2ascii中的encoding


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产高清一区二区 | 日韩不卡 | 在线观看 一区二区 麻豆 | 久久草在线观看 | 久久r这里只有精品 | 成人a在线 | 国产一级淫片a | 91久久精品都在这里 | 特黄aa级毛片免费视频播放 | 伊人精品影院一本到欧美 | 精品精品国产理论在线观看 | 特级毛片免费播放 | 成人a毛片高清视频 | 午夜成人免费影院 | 一级片在线视频 | 在线欧美精品国产综合五月 | 国产在线观看中文字幕 | 日本视频久久 | 国产免费一级片 | 亚洲国产成人久久 | 最新欧美一级视频 | 国产精品久久久久久免费播放 | 久久99中文字幕久久 | 亚洲人成亚洲精品 | 国产精品一区二区三区四区 | 深夜影院a | 久久福利精品 | 中文字幕11页 | 亚洲精品久久九九精品 | 国产精品久久久久久久久免费观看 | 女性一级全黄生活片 | 婷婷五月天.com | 亚洲欧美自拍另类图片色 | 国产特级毛片 | 狠狠色噜噜狠狠狠狠五月婷 | 成人精品一级毛片 | 国产成人亚洲综合网站不卡 | 亚洲成a人v | 国产伦精品一区二区三区 | 亚洲欧美高清在线 | 欧美性视频在线 |