中文亂碼問題分析(Java)

中文亂碼問題分析(Java)

ID:43790270

大?。?54.68 KB

頁數(shù):8頁

時(shí)間:2019-10-14

中文亂碼問題分析(Java)_第1頁
中文亂碼問題分析(Java)_第2頁
中文亂碼問題分析(Java)_第3頁
中文亂碼問題分析(Java)_第4頁
中文亂碼問題分析(Java)_第5頁
資源描述:

《中文亂碼問題分析(Java)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、第一章基礎(chǔ)知識1.1介紹1.1.1iso8859-l屬于單字節(jié)編碼,最多能表示的字符范圍是0-255,應(yīng)用于英文系列。比如,字母a的編碼為0x61=97oISO8859-1,即俗稱的latin-1,西歐字母。其中前半段是ASCTT碼。很明顯,iso8859-l編碼表示的字符范圍很窄,無法表示屮文字符。但是,由于是單字節(jié)編碼,和計(jì)算機(jī)最基礎(chǔ)的表示單位一致,所以很多時(shí)候,仍舊使用iso8859-l編碼來表示。而且在很多協(xié)議上,默認(rèn)使用該編碼。比如,雖然“中丈'兩個(gè)字不存在iso8859-l編碼,以gb2312編碼為例,應(yīng)該是”<16d0ce

2、c4“兩個(gè)字符,使用iso8859-l編碼的時(shí)候則將它拆開為4個(gè)字節(jié)來表示:“d6d0cec4“(事實(shí)上,在進(jìn)行存儲(chǔ)的時(shí)候,也是以字節(jié)為單位處理的)。而如果是UTF編碼,則是6個(gè)字節(jié)*'e4b8ade69687%很明顯,這種表示方法還需要以另一種編碼為基礎(chǔ)。1.1.2GB系列GB系列這就是漢了的國標(biāo)碼,專門用來表示漢字,是雙字節(jié)編碼,而英文字母和iso8859-l一致(兼容iso8859-l編碼)。其中g(shù)bk編碼能夠用來同時(shí)表示繁體字和簡體字,而gb2312只能表示簡體字,gbk是兼容gb2312編碼的。GB2312-80是在國內(nèi)計(jì)算機(jī)

3、漢字信息技術(shù)發(fā)展初始階段制定的,其中包含了大部分常用的一、二級漢字,和9區(qū)的符號。該字符集是幾乎所有的中文系統(tǒng)和國際化的軟件都支持的中文字符集,這也是最基本的小文字符集。其編碼范圍是高位Oxal-Oxfe,低位也是Oxal-Oxfe;漢字從OxbOal開始,結(jié)束于0xf7fe;GBK是GB2312-80的擴(kuò)展,是向上兼容的。它包含了20902個(gè)漢字,其編碼范圍是0x8140-0xfefe,剔除高位0x80的字位。其所有字符都可以一對一映射到Unicode2.0,也就是說JAVA實(shí)際上提供了GBK字符集的支持。這是現(xiàn)階段Windows和其

4、它一些中文操作系統(tǒng)的缺省字符集,但并不是所有的國際化軟件都支持該字符集,感覺是他們并不完全知道GBK是怎么回事。值得注意的是它不是國家標(biāo)準(zhǔn),而只是規(guī)范。隨著GB18030-2000國標(biāo)的發(fā)布,它將在不久的將來完成它的歷史使命。GB18030-2000(GBK2K)在GBK的基礎(chǔ)上進(jìn)一步擴(kuò)展了漢字,增加了藏、蒙等少數(shù)民族的字形。GBK2K從根本上解決了字位不夠,字形不足的問題。它有兒個(gè)特點(diǎn):1、它并沒有確定所有的字形,只是規(guī)定了編碼范圍,留待以后擴(kuò)充。2、編碼是變長的,其二字節(jié)部分與GBK兼容;四字節(jié)部分是擴(kuò)充的字形、字位,其編碼范圍是首

5、字節(jié)0x81-0xfe>二字節(jié)0x30-0x39、三字節(jié)0x81-0xfe>四字節(jié)0x30-0x39。3、它的推廣是分階段的,首先要求實(shí)現(xiàn)的是能夠完全映射到Unicode3.0標(biāo)準(zhǔn)的所有字形。4、它是國家標(biāo)準(zhǔn),是強(qiáng)制性的。5、現(xiàn)在還沒有任何一個(gè)操作系統(tǒng)或軟件實(shí)現(xiàn)了GBK2K的支持,這是現(xiàn)階段和將來漢化的工作內(nèi)容1.1.1unicode這是最統(tǒng)一的編碼,可以用來表示所有語言的字符,而且是定長雙字節(jié)(也有四字節(jié)的)編碼,包括英文字母在內(nèi)。所以町以說它是不兼容iso8859-l編碼的,也不兼容任何編碼。不過,相對于iso8859-1編碼來說,

6、uniocode編碼只是在前面增加了一個(gè)0字節(jié),比如字母a為“0061"。需要說明的是,定長編碼便于計(jì)算機(jī)處理(注意GB2312/GBK不是定長編碼),而unicode又可以用來表示所有字符,所以在很多軟件內(nèi)部是使用unicode編碼來處理的,比如javaoISO10646,即通用字符集(UniversalCharacterSet,UCS),四個(gè)字節(jié)編碼UCS標(biāo)準(zhǔn)(ISO10646)描述了一個(gè)31位字符集的體系,不過,目前只使用了前面65534個(gè)編碼位置(OxOOOO-Oxfffd,它們被稱為基本多語言塊(BasicMultilingu

7、alPlane,BMP)),分配給了字符,而且我們估計(jì)只有那些很古怪的字符(比如.Hieroglyphics)為了專門的科學(xué)冃的,才會(huì)在將來的某個(gè)時(shí)候,需要16位的BMPZ外的部分.Unicode編碼頭256個(gè)字符和IS08559-1一樣。前曲補(bǔ)上空字節(jié)。UniHAN主要分布在U+3400到U+9FFFZ間,此外,U+F900到U+FAFFZ間也有一些。事實(shí)上,GB2312和BIG5的字符都分布在U+4E00和U+9FFF之間。Unicode中中文:4e00-9fa51.1.2UTF考慮到unicode編碼不兼容iso8859-l編碼,

8、而且容易占用更多的空間:因?yàn)閷τ谟⑽淖帜?unicode也需要兩個(gè)字節(jié)來表示。所以unicode不便于傳輸和存儲(chǔ)。因此而產(chǎn)生了utf編碼,utf編碼兼容iso8859-1編碼,同時(shí)也可以用來表示所有語言的字

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。