青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

字符編碼方式基本知識(shí)

ASCII:基本字符集是128個(gè)常用字符,擴(kuò)展字符集是128個(gè),共256個(gè),用1個(gè)字節(jié)表示。
GB2312
6千多個(gè)常用漢字
GBK
1萬多個(gè)漢字
GB18030
:更多,不過依然是兩個(gè)字節(jié)來表示漢字。
上面三種GB*可以統(tǒng)一稱為ANSI編碼,且16個(gè)bit的第一個(gè)必定是1
BIG5
:繁體字符集,用于臺(tái)灣地區(qū)

Unicode:兩字節(jié)表示的世界通用碼,存儲(chǔ)為文本時(shí)會(huì)有連個(gè)字節(jié)的頭信息。
UTF-8
:一種以8個(gè)bit為一組的Unicode的表示格式,存儲(chǔ)為本文時(shí)有三個(gè)字節(jié)的頭信息。
UTF-16
16個(gè)bit為一組

單詞全稱:
ASCII: American Standard Code Information Interchange
ANSI: American National Standard Institue
GB: Guo Biao
UTF: Unicode Translation Format

========================================================
字符是各種文字和符號(hào)的總稱,包括各國家文字、標(biāo)點(diǎn)符號(hào)、圖形符號(hào)、數(shù)字等。字符集是多個(gè)字符的集合,字符集種類較多,每個(gè)字符集包含的字符個(gè)數(shù)不同,常見字符集名稱:ASCII字符集、GB2312字符集、BIG5字符集、 GB 18030字符集、Unicode字符集等。計(jì)算機(jī)要準(zhǔn)確的處理各種字符集文字,需要進(jìn)行字符編碼,以便計(jì)算機(jī)能夠識(shí)別和存儲(chǔ)各種文字。

中文文字?jǐn)?shù)目大,而且還分為簡體中文和繁體中文兩種不同書寫規(guī)則的文字,而計(jì)算機(jī)最初是按英語單字節(jié)字符設(shè)計(jì)的,因此,對中文字符進(jìn)行編碼,是中文信息交流的技術(shù)基礎(chǔ)。本文將按照字符集的時(shí)間順序討論幾種典型的字符集,選取幾種代表性的中文字符集,研究歷史由來、特點(diǎn)、技術(shù)特征。

ASCII 字符集

1.名稱的由來

ASCIIAmerican Standard Code for Information Interchange,美國信息互換標(biāo)準(zhǔn)代碼)是基于羅馬字母表的一套電腦編碼系統(tǒng)。

2.特點(diǎn)

它主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO 646

3.包含內(nèi)容

控制字符:回車鍵、退格、換行鍵等。

可顯示字符:英文大小寫字符、阿拉伯?dāng)?shù)字和西文符號(hào)

4.技術(shù)特征

7位(bits)表示一個(gè)字符,共128字符

5ASCII擴(kuò)展字符集

7位編碼的字符集只能支持128個(gè)字符,為了表示更多的歐洲常用字符對ASCII進(jìn)行了擴(kuò)展,ASCII擴(kuò)展字符集使用8位(bits)表示一個(gè)字符,共256字符。

ASCII擴(kuò)展字符集比ASCII字符集擴(kuò)充出來的符號(hào)包括表格符號(hào)、計(jì)算符號(hào)、希臘字母和特殊的拉丁符號(hào)。

GB2312 字符集

1.名稱的由來

GB2312又稱為GB2312-80字符集,全稱為《信息交換用漢字編碼字符集·基本集》,由原中國國家標(biāo)準(zhǔn)總局發(fā)布,198151實(shí)施。

2.特點(diǎn)

GB2312是中國國家標(biāo)準(zhǔn)的簡體中文字符集。它所收錄的漢字已經(jīng)覆蓋99.75%的使用頻率,基本滿足了漢字的計(jì)算機(jī)處理需要。在中國大陸和新加坡獲廣泛使用。

3.包含內(nèi)容

GB2312收錄簡化漢字及一般符號(hào)、序號(hào)、數(shù)字、拉丁字母、日文假名、希臘字母、俄文字母、漢語拼音符號(hào)、漢語注音字母,共 7445 個(gè)圖形字符。其中包括6763個(gè)漢字,其中一級(jí)漢字3755個(gè),二級(jí)漢字3008個(gè);包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內(nèi)的682個(gè)全角字符。

4.技術(shù)特征

1)分區(qū)表示:

GB2312中對所收漢字進(jìn)行了分區(qū)處理,每區(qū)含有94個(gè)漢字/符號(hào)。這種表示方式也稱為區(qū)位碼。

各區(qū)包含的字符如下:01-09區(qū)為特殊符號(hào);16-55區(qū)為一級(jí)漢字,按拼音排序;56-87區(qū)為二級(jí)漢字,按部首/筆畫排序;10-15區(qū)及88-94區(qū)則未有編碼。

2)雙字節(jié)表示

兩個(gè)字節(jié)中前面的字節(jié)為第一字節(jié),后面的字節(jié)為第二字節(jié)。習(xí)慣上稱第一字節(jié)為高字節(jié),而稱第二字節(jié)為低字節(jié)

高位字節(jié)使用了0xA1-0xF7(01-87區(qū)的區(qū)號(hào)加上0xA0)低位字節(jié)使用了0xA1-0xFE(01-94加上0xA0)

5.編碼舉例

GB2312字符集的第一個(gè)漢字字為例,它的區(qū)號(hào)16,位號(hào)01,則區(qū)位碼是1601,在大多數(shù)計(jì)算機(jī)程序中,高字節(jié)和低字節(jié)分別加0xA0得到程序的漢字處理編碼0xB0A1。計(jì)算公式是:0xB0=0xA0+16, 0xA1=0xA0+1

BIG5 字符集

1.名稱的由來

又稱大五碼或五大碼,1984年由臺(tái)灣財(cái)團(tuán)法人信息工業(yè)策進(jìn)會(huì)和五間軟件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大眾 (FIC)創(chuàng)立,故稱大五碼

Big5的產(chǎn)生,是因?yàn)楫?dāng)時(shí)臺(tái)灣不同廠商各自推出不同的編碼,如倚天碼、IBM PS55、王安碼等,彼此不能兼容;另一方面,臺(tái)灣政府當(dāng)時(shí)尚未推出官方的漢字編碼,而中國大陸的GB2312編碼亦未有收錄繁體中文字。

2.特點(diǎn)

Big5字符集共收錄13,053個(gè)中文字,該字符集在中國臺(tái)灣使用。耐人尋味的是該字符集重復(fù)地收錄了兩個(gè)相同的字:”(0xA4610xC94A)”(0xDCD10xDDFC)

3.字符編碼方法

Big5使用了雙字節(jié)儲(chǔ)存方法,以兩個(gè)字節(jié)來編碼一個(gè)字。第一個(gè)字節(jié)稱為“高位字節(jié),第二個(gè)字節(jié)稱為低位字節(jié)。高位字節(jié)的編碼范圍0xA1-0xF9,低位字節(jié)的編碼范圍0x40-0x7E0xA1-0xFE

各編碼范圍對應(yīng)的字符類型如下:0xA140-0xA3BF為標(biāo)點(diǎn)符號(hào)、希臘字母及特殊符號(hào),另外于0xA259-0xA261,存放了雙音節(jié)度量衡單位用字:兙兛兞兝兡兣嗧瓩糎;0xA440-0xC67E為常用漢字,先按筆劃再按部首排序;0xC940-0xF9D5為次常用漢字,亦是先按筆劃再按部首排序。

4Big5 的局限性

盡管Big5內(nèi)包含一萬多個(gè)字符,但是沒有考慮社會(huì)上流通的人名、地名用字、方言用字、化學(xué)及生物科等用字,沒有包含日文平假名及片假名字母。

例如臺(tái)灣視的異體字,故沒有收錄字。康熙字典中的一些部首用字()、常見的人名用字() 也沒有收錄到Big5之中。

GB18030 字符集

1.名稱的由來

GB 18030的全稱是GB18030-2000《信息交換用漢字編碼字符集基本集的擴(kuò)充》,是我國政府于2000317發(fā)布的新的漢字編碼國家標(biāo)準(zhǔn),2001831后在中國市場上發(fā)布的軟件必須符合本標(biāo)準(zhǔn)

2.特點(diǎn)

GB 18030字符集標(biāo)準(zhǔn)的出臺(tái)經(jīng)過廣泛參與和論證,來自國內(nèi)外知名信息技術(shù)行業(yè)的公司,信息產(chǎn)業(yè)部和原國家質(zhì)量技術(shù)監(jiān)督局聯(lián)合實(shí)施。

GB 18030字符集標(biāo)準(zhǔn)解決漢字、日文假名、朝鮮語和中國少數(shù)民族文字組成的大字符集計(jì)算機(jī)編碼問題。該標(biāo)準(zhǔn)的字符總編碼空間超過150萬個(gè)編碼位,收錄了27484個(gè)漢字,覆蓋中文、日文、朝鮮語和中國少數(shù)民族文字。滿足中國大陸、香港、臺(tái)灣、日本和韓國等東亞地區(qū)信息交換多文種、大字量、多用途、統(tǒng)一編碼格式的要求。并且與Unicode 3.0版本兼容,填補(bǔ)Unicode擴(kuò)展字符字匯統(tǒng)一漢字?jǐn)U展A”的內(nèi)容。并且與以前的國家字符編碼標(biāo)準(zhǔn)(GB2312GB13000.1)兼容。

3.編碼方法

GB 18030標(biāo)準(zhǔn)采用單字節(jié)、雙字節(jié)和四字節(jié)三種方式對字符編碼。單字節(jié)部分使用0×007F(對應(yīng)于ASCII碼的相應(yīng)碼)。雙字節(jié)部分,首字節(jié)碼從0×810×FE,尾字節(jié)碼位分別是0×400×7E0×800×FE。四字節(jié)部分采用GB/T 11383未采用的0×300×39作為對雙字節(jié)編碼擴(kuò)充的后綴,這樣擴(kuò)充的四字節(jié)編碼,其范圍為0×813081300×FE39FE39。其中第一、三個(gè)字節(jié)編碼碼位均為0×810×FE,第二、四個(gè)字節(jié)編碼碼位均為0×300×39

4.包含的內(nèi)容

雙字節(jié)部分收錄內(nèi)容主要包括GB13000.1全部CJK漢字20902個(gè)、有關(guān)標(biāo)點(diǎn)符號(hào)、表意文字描述符13個(gè)、增補(bǔ)的漢字和部首/構(gòu)件80個(gè)、雙字節(jié)編碼的歐元符號(hào)等。  四字節(jié)部分收錄了上述雙字節(jié)字符之外的,包括CJK統(tǒng)一漢字?jǐn)U充A在內(nèi)的GB 13000.1中的全部字符。

Unicode字符集

1.名稱的由來

Unicode字符集編碼是Universal Multiple-Octet Coded Character Set 通用多八位編碼字符集的簡稱,是由一個(gè)名為 Unicode 學(xué)術(shù)學(xué)會(huì)(Unicode Consortium)的機(jī)構(gòu)制訂的字符編碼系統(tǒng),支持現(xiàn)今世界各種不同語言的書面文本的交換、處理及顯示。該編碼于1990年開始研發(fā),1994年正式公布,最新版本是2005331Unicode 4.1.0

2.特征

Unicode是一種在計(jì)算機(jī)上使用的字符編碼。它為每種語言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。

3.編碼方法

Unicode 標(biāo)準(zhǔn)始終使用十六進(jìn)制數(shù)字,而且在書寫時(shí)在前面加上前綴“U+”,例如字母“A”的編碼為 004116 和字符“?”的編碼為 20AC16。所以“A”的編碼書寫為“U+0041”

4UTF-8 編碼
UTF-8
Unicode的其中一個(gè)使用方式。 UTF Unicode Translation Format,即把Unicode轉(zhuǎn)做某種格式的意思。

UTF-8便于不同的計(jì)算機(jī)之間使用網(wǎng)絡(luò)傳輸不同語言和編碼的文字,使得雙字節(jié)的Unicode能夠在現(xiàn)存的處理單字節(jié)的系統(tǒng)上正確傳輸。

UTF-8使用可變長度字節(jié)來儲(chǔ)存 Unicode字符,例如ASCII字母繼續(xù)使用1字節(jié)儲(chǔ)存,重音文字、希臘字母或西里爾字母等使用2字節(jié)來儲(chǔ)存,而常用的漢字就要使用3字節(jié)。輔助平面字符則使用4字節(jié)。

5UTF-16 UTF-32 編碼
UTF-32
UTF-16 UTF-8 Unicode 標(biāo)準(zhǔn)的編碼字符集的字符編碼方案,UTF-16 使用一個(gè)或兩個(gè)未分配的 16 位代碼單元的序列對 Unicode 代碼點(diǎn)進(jìn)行編碼;UTF-32 即將每一個(gè) Unicode 代碼點(diǎn)表示為相同值的 32 位整數(shù)。
========================================================
什么是unicode, GB2312, GBK, ANSI, UTF

發(fā)展過程 ASCII à GB2312(BIG5) à GBKàGB18030 

字符必須編碼后才能被計(jì)算機(jī)處理。計(jì)算機(jī)使用的缺省編碼方式就是計(jì)算機(jī)的內(nèi)碼。早期的計(jì)算機(jī)使用7位的ASCII編碼,為了處理漢字,程序員設(shè)計(jì)了用于簡體中文的GB2312和用于繁體中文的big5

GB2312(1980)一共收錄了7445個(gè)字符,包括6763個(gè)漢字和682個(gè)其它符號(hào)。漢字區(qū)的內(nèi)碼范圍高字節(jié)從B0-F7,低字節(jié)從A1-FE,占用的碼位是72*94=6768。其中有5個(gè)空位是D7FA-D7FE

GB2312支持的漢字太少。1995年的漢字?jǐn)U展規(guī)范GBK1.0收錄了21886個(gè)符號(hào),它分為漢字區(qū)和圖形符號(hào)區(qū)。漢字區(qū)包括21003個(gè)字符。

ASCIIGB2312GBK,這些編碼方法是向下兼容的,即同一個(gè)字符在這些方案中總是有相同的編碼,后面的標(biāo)準(zhǔn)支持更多的字符。在這些編碼中,英文和中文可以統(tǒng)一地處理。區(qū)分中文編碼的方法是高字節(jié)的最高位不為0。按照程序員的稱呼,GB2312GBK都屬于雙字節(jié)字符集 (DBCS)

2000年的GB18030是取代GBK1.0的正式國家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)收錄了27484個(gè)漢字,同時(shí)還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。從漢字字匯上說,GB18030GB13000.120902個(gè)漢字的基礎(chǔ)上增加了CJK擴(kuò)展A6582個(gè)漢字(Unicode 0x3400-0x4db5),一共收錄了27484個(gè)漢字。

CJK就是中日韓的意思。Unicode為了節(jié)省碼位,將中日韓三國語言中的文字統(tǒng)一編碼。GB13000.1就是ISO/IEC 10646-1的中文版,相當(dāng)于Unicode 1.1

GB18030的編碼采用單字節(jié)、雙字節(jié)和4字節(jié)方案。其中單字節(jié)、雙字節(jié)和GBK是完全兼容的。4字節(jié)編碼的碼位就是收錄了CJK擴(kuò)展A6582個(gè)漢字。例如:UCS0x3400GB18030中的編碼應(yīng)該是8139EF30UCS0x3401GB18030中的編碼應(yīng)該是8139EF31

微軟提供了GB18030的升級(jí)包,但這個(gè)升級(jí)包只是提供了一套支持CJK擴(kuò)展A6582個(gè)漢字的新字體:新宋體-18030,并不改變內(nèi)碼。Windows 的內(nèi)碼仍然是GBK 

ASCIIGB2312GBKGB18030的編碼方法是向下兼容的。而Unicode只與ASCII兼容

Unicode也是一種字符編碼方法,不過它是由國際組織設(shè)計(jì),可以容納全世界所有語言文字的編碼方案。unicode java 中的編碼轉(zhuǎn)換橋梁,使用了以組流過濾器來橋接unicode編碼文本和本地操作系統(tǒng)編碼文本的隔閡(內(nèi)碼,windowsGBK).所有的class 派生自abstract class Reader and Writer .后面繼續(xù)研究

由于現(xiàn)有的大量程序和文檔都采用了某種特定語言的編碼,例如GBKWindows不可能不支持現(xiàn)有的編碼,而全部改用Unicode。我們稱GBKwindows的內(nèi)碼.Windows使用代碼頁(code page)來適應(yīng)各個(gè)國家和地區(qū)。code page可以被理解為內(nèi)碼。GBK對應(yīng)的code pageCP936

what is UCS?

Unicode的學(xué)名是"Universal Multiple-Octet Coded Character Set",簡稱為UCSUCS可以看作是"Unicode Character Set"的縮寫。

UCS有兩種格式:UCS-2UCS-4。顧名思義,UCS-2就是用兩個(gè)字節(jié)編碼,UCS-4就是用4個(gè)字節(jié)(實(shí)際上只用了31位,最高位必須為0)編碼。 

什么是UTF

UTF,是Unicode Text Format的縮寫,意為Unicode文本格式。對于UTF,是這樣定義的 

1)如果Unicode16位字符的頭9位是0,則用一個(gè)字節(jié)表示,這個(gè)字節(jié)的首位是 “0”,剩下的7位與原字符中的后7位相同,如“\u0034”0000 0000 0011 0100),用“34” (0011 0100)表示;(與源Unicode字符是相同的); 

2)如果Unicode16位字符的頭5位是0,則用2個(gè)字節(jié)表示,首字節(jié)是“110”開頭,后面的5位與源字符中除去頭5個(gè)零后的最高5位相同;第二個(gè)字節(jié)以“10”開頭,后面的6位與源字符中的低6位相同。如“\ u025d”0000 0010 0101 1101),轉(zhuǎn)化后為“c99d”1100 1001 1001 1101);

3)如果不符合上述兩個(gè)規(guī)則,則用三個(gè)字節(jié)表示。第一個(gè)字節(jié)以“1110”開頭,后四位為源字符的高四位;第二個(gè)字節(jié)以“10”開頭,后六位為源字符中間的六位;第三個(gè)字節(jié)以“10”開頭,后六位為源字符的低六位;如“\u9da7”1001 1101 1010 0111),轉(zhuǎn)化為“e9b6a7”1110 1001 1011 0110 1010 0111); 

UCS UTF 的聯(lián)系

UTF-8就是以8位為單元對UCS進(jìn)行編碼

UTF-1616位為單元對UCS進(jìn)行編碼

big endianlittle endian

big endianlittle endianCPU處理多字節(jié)數(shù)的不同方式。例如字的Unicode編碼是6C49。那么寫到文件里時(shí),究竟是將6C寫在前面,還是將49寫在前面?如果將6C寫在前面,就是big endian。如果將49寫在前面,就是little endian

“endian”這個(gè)詞出自《格列佛游記》。小人國的內(nèi)戰(zhàn)就源于吃雞蛋時(shí)是究竟從大頭(Big-Endian)敲開還是從小頭(Little-Endian)敲開,由此曾發(fā)生過六次叛亂,一個(gè)皇帝送了命,另一個(gè)丟了王位。

我們一般將endian翻譯成字節(jié)序,將big endianlittle endian稱作大尾小尾
=================================================
GB2312
GBK的子集,GBKGB18030的子集
GBK
是包括中日韓字符的大字符集合
如果是中文的網(wǎng)站 推薦GB2312 GBK有時(shí)還是有點(diǎn)問題
為了避免所有亂碼問題,應(yīng)該采用UTF-8,將來要支持國際化也非常方便
UTF-8
可以看作是大字符集,它包含了大部分文字的編碼。
使用UTF-8的一個(gè)好處是其他地區(qū)的用戶(如香港臺(tái)灣)無需安裝簡體中文支持就能正常觀看你的文字而不會(huì)出現(xiàn)亂碼。

詞條:UTF8
UTF8
并不算是一種電腦編碼,而是一種儲(chǔ)存和傳送的格式,如前所述,每個(gè)Unicode/UCS字符都以 24個(gè)bytes來儲(chǔ)存,看看以下的比較:

  以"I am Chinese"為例
   用ANSI儲(chǔ)存:12 Bytes
   用Unicode/UCS2儲(chǔ)存:24 Bytes + 2 Bytes(header)
   用UCS4儲(chǔ)存:48 Bytes + 4 Bytes(header)

  以"我是中國人"為例
   用ANSI儲(chǔ)存:10 Bytes
   用Unicode/UCS2儲(chǔ)存:10 Bytes + 2 Bytes(header)
   用UCS4儲(chǔ)存:20 Bytes + 4 Bytes(header)

  由此可見直接以Unicode/UCS的原始形式來儲(chǔ)存是一種極大的浪費(fèi),而且也不利于互聯(lián)網(wǎng)的傳輸(中文稍為合算一點(diǎn)^_^)

  有見及此,Unicode/UCS的壓縮形式--UTF8出現(xiàn)了,套用官方網(wǎng)站的首句話『UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.』,由于UTF也適用于編碼UCS,故亦可稱為『UCS transformation formats (UTF)

  UTF8是以8bits1Bytes為編碼的最基本單位,當(dāng)然也可以有基于16bits32bits的形式,分別稱為UTF16UTF32,但目前用得不多,而UTF8則被廣泛應(yīng)用在文件儲(chǔ)存和網(wǎng)絡(luò)傳輸中。


編碼原理

先看這個(gè)模板:

UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx

0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx

編碼步驟:
1)
首先確定需要多少個(gè)8bits(octets)
2)
按照上述模板填充每個(gè)octets的高位bits
3)
把字符的bits填充至x中,字符順序:低位高位,UTF8順序:最后一個(gè)octet的最末位x→第一個(gè)octet最高位x
4)
解碼的原理一樣。

實(shí)例:(留意每個(gè)bit的顏色,粗體字為模板內(nèi)容)

UCS-4 UTF-8
HEX BIN Bytes BIN HEX Bytes
0000 000A 00001010 4 00001010 0A 1
0000 0099 10011001 4 11000010 10011001 C2 99 2
0000 8D99 10001101 10011001 4 11101000 10110110 10011001 E8 B6 99 3

  不知大家看懂了沒有,其實(shí)不懂也無所謂,反正又不用自己算,程式可以完全代勞。

  以UTF8格式儲(chǔ)存的文件檔首標(biāo)識(shí)為EF BB BF


效率

  從上述編碼原理中得出的結(jié)論是:
   1.每個(gè)英文字母、數(shù)字所占的空間為1 Byte
   2.泛歐語系、斯拉夫語字母占2 Bytes
   3.漢字占3 Bytes

  由此可見UTF8對英文來說是個(gè)非常誘人的方案,但對中文來說則不太合算,無論用ANSI還是 Unicode/UCS2來編碼都只用2 Bytes,但用UTF8則需要3 Bytes

  以下是一些統(tǒng)計(jì)資料,顯示用UTF8來儲(chǔ)存文件每個(gè)字符所需的平均字節(jié):
   1.拉丁語系平均用1.1 Bytes
   2.希臘文、俄文、阿拉伯文和希伯萊文平均用1.7 Bytes
   3.其他大部份文字如中文、日文、韓文、Hindi(北印度語)用約3 Bytes
   4.用超過4 Bytes的都是些非常少用的文字符號(hào)。

詞條:GB2312
字符必須編碼后才能被計(jì)算機(jī)處理。計(jì)算機(jī)使用的缺省編碼方式就是計(jì)算機(jī)的內(nèi)碼。早期的計(jì)算機(jī)使用7位的ASCII編碼,為了處理漢字,程序員設(shè)計(jì)了用于簡體中文的GB2312和用于繁體中文的big5

GB2312(1980)一共收錄了7445個(gè)字符,包括6763個(gè)漢字和682個(gè)其它符號(hào)。漢字區(qū)的內(nèi)碼范圍高字節(jié)從B0-F7,低字節(jié)從A1-FE,占用的碼位是72*94=6768。其中有5個(gè)空位是D7FA-D7FE

GB2312支持的漢字太少。1995年的漢字?jǐn)U展規(guī)范GBK1.0收錄了21886個(gè)符號(hào),它分為漢字區(qū)和圖形符號(hào)區(qū)。漢字區(qū)包括21003個(gè)字符。2000年的GB18030是取代GBK1.0的正式國家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)收錄了27484個(gè)漢字,同時(shí)還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。現(xiàn)在的PC平臺(tái)必須支持GB18030,對嵌入式產(chǎn)品暫不作要求。所以手機(jī)、MP3一般只支持GB2312

ASCIIGB2312GBKGB18030,這些編碼方法是向下兼容的,即同一個(gè)字符在這些方案中總是有相同的編碼,后面的標(biāo)準(zhǔn)支持更多的字符。在這些編碼中,英文和中文可以統(tǒng)一地處理。區(qū)分中文編碼的方法是高字節(jié)的最高位不為0。按照程序員的稱呼,GB2312GBKGB18030都屬于雙字節(jié)字符集 (DBCS)

有的中文Windows的缺省內(nèi)碼還是GBK,可以通過GB18030升級(jí)包升級(jí)到GB18030。不過GB18030相對GBK增加的字符,普通人是很難用到的,通常我們還是用GBK指代中文Windows內(nèi)碼。

這里還有一些細(xì)節(jié):

GB2312的原文還是區(qū)位碼,從區(qū)位碼到內(nèi)碼,需要在高字節(jié)和低字節(jié)上分別加上A0

DBCS中,GB內(nèi)碼的存儲(chǔ)格式始終是big endian,即高位在前。

GB2312的兩個(gè)字節(jié)的最高位都是1。但符合這個(gè)條件的碼位只有128*128=16384個(gè)。所以GBKGB18030的低字節(jié)最高位都可能不是1。不過這不影響DBCS字符流的解析:在讀取DBCS字符流時(shí),只要遇到高位為1的字節(jié),就可以將下兩個(gè)字節(jié)作為一個(gè)雙字節(jié)編碼,而不用管低字節(jié)的高位是什么。

 

posted on 2008-11-07 22:43 肥仔 閱讀(4066) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 字符編碼

評(píng)論

# re: 字符編碼方式基本知識(shí)  回復(fù)  更多評(píng)論   

把函數(shù)加百分52.5在除去12。6
2014-01-08 15:00 |
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            麻豆freexxxx性91精品| 久久精品动漫| 亚洲一区二区三区四区视频| 久久躁日日躁aaaaxxxx| 国产欧美一区二区精品忘忧草| 亚洲精品偷拍| 麻豆精品一区二区av白丝在线| 亚洲免费伊人电影在线观看av| 欧美涩涩网站| 亚洲视频香蕉人妖| 亚洲日本欧美日韩高观看| 久久夜色精品国产欧美乱极品| 国内视频一区| 久久中文字幕一区二区三区| 性色av一区二区三区| 国产精品系列在线播放| 欧美影院一区| 久久精品视频亚洲| 亚洲国产精品成人一区二区| 欧美激情第1页| 欧美精品电影在线| 一区二区欧美视频| 9色国产精品| 国产精品一区二区三区免费观看| 欧美人与性禽动交情品| 亚洲精品久久嫩草网站秘色| 亚洲高清中文字幕| 欧美二区不卡| 亚洲综合色自拍一区| 欧美亚洲视频在线看网址| 一区二区三区在线不卡| 欧美国产第一页| 欧美日韩一区在线观看| 欧美在线视频导航| 久久综合色一综合色88| 日韩视频中文字幕| 亚洲午夜高清视频| 好男人免费精品视频| 亚洲国产精品一区二区第一页| 欧美日韩国产色视频| 欧美在线日韩精品| 麻豆成人精品| 亚洲欧美卡通另类91av| 久久久一区二区| 中文精品在线| 久久久国产视频91| 亚洲一二三级电影| 久久久五月天| 亚洲欧美日韩综合| 麻豆精品网站| 欧美一区二区免费观在线| 免费在线看成人av| 久久精品一区二区三区中文字幕| 欧美二区在线观看| 久久精品国产欧美激情| 欧美精品首页| 免费在线欧美黄色| 国产精品丝袜久久久久久app | 欧美阿v一级看视频| 欧美午夜精品理论片a级大开眼界| 久久免费99精品久久久久久| 欧美三级在线视频| 亚洲国产高清在线观看视频| 国产日韩精品视频一区二区三区| 亚洲人成在线播放| 亚洲国产高清aⅴ视频| 亚洲欧美日韩另类| 亚洲少妇一区| 欧美国产日本韩| 欧美阿v一级看视频| 国产午夜亚洲精品不卡| 一级日韩一区在线观看| 亚洲人成人77777线观看| 久久福利视频导航| 久久高清一区| 国产精品免费aⅴ片在线观看| 亚洲日本激情| 亚洲精品欧洲| 免费成人高清在线视频| 美乳少妇欧美精品| 亚洲成人自拍视频| 久久午夜电影网| 蜜桃av一区二区三区| 黑人巨大精品欧美一区二区| 欧美一级淫片aaaaaaa视频| 午夜免费日韩视频| 国产精品自拍视频| 亚洲欧美中文在线视频| 久久视频一区二区| 久久久免费精品| 久久久噜噜噜久久中文字幕色伊伊| 欧美午夜欧美| 这里是久久伊人| 欧美亚洲免费高清在线观看| 国产精品地址| 亚洲综合色在线| 久久99在线观看| 国产在线观看91精品一区| 性欧美大战久久久久久久免费观看 | 一区二区三区精密机械公司| 一区二区三区高清| 欧美日韩伦理在线免费| 日韩一级大片| 性欧美大战久久久久久久免费观看 | 欧美主播一区二区三区美女 久久精品人 | 久久国产精品久久久久久久久久| 国产精品入口夜色视频大尺度| 亚洲网站视频| 午夜在线不卡| 国外成人在线视频| 麻豆av一区二区三区| 亚洲国产精品女人久久久| 亚洲精品欧美日韩专区| 欧美啪啪成人vr| 亚洲一区二区三区免费观看 | 久久久午夜精品| 精品动漫一区| 欧美精品综合| 午夜精品久久久久| 欧美福利在线观看| 亚洲一区二区三区色| 国产一区二区日韩精品| 欧美大片第1页| 亚洲在线一区| 欧美成人精品三级在线观看| 夜夜嗨av一区二区三区四季av | 欧美日韩国产一区| 亚洲欧美中文字幕| 亚洲电影天堂av| 香蕉av福利精品导航| 国内外成人免费激情在线视频| 欧美黄色一级视频| 午夜亚洲伦理| 亚洲精品网站在线播放gif| 西西人体一区二区| 亚洲激情综合| 国产欧美在线观看| 久久久蜜桃一区二区人| 亚洲在线观看视频| 欧美a级片一区| 午夜精品视频| 一本一本a久久| 欧美中日韩免费视频| 欧美va亚洲va香蕉在线| 亚洲视频综合| 亚洲电影免费观看高清| 久久aⅴ乱码一区二区三区| 亚洲日本黄色| 国外视频精品毛片| 国产伦精品一区二区三区| 欧美激情1区| 久久亚洲国产精品日日av夜夜| 亚洲永久精品大片| 亚洲精品影院在线观看| 美女精品在线| 久久久7777| 久久成人国产精品| 亚洲无毛电影| 亚洲精品影视| 亚洲国产成人porn| 伊人男人综合视频网| 国产日韩综合| 国产欧美精品一区aⅴ影院| 欧美色偷偷大香| 欧美日韩一区二区高清| 欧美插天视频在线播放| 另类天堂av| 久久一区二区三区av| 久久久精品性| 久久久久久久精| 久久久久国产精品人| 久久激情中文| 久久精品中文字幕一区| 久久久久久一区二区三区| 久久久久久穴| 你懂的成人av| 欧美紧缚bdsm在线视频| 欧美经典一区二区三区| 欧美精品电影在线| 欧美日韩一区二区精品| 欧美性视频网站| 国产精品伦一区| 国产欧美一区二区三区久久| 国产日产精品一区二区三区四区的观看方式 | 一区二区三区毛片| 亚洲视频一区二区在线观看| 99视频+国产日韩欧美| 亚洲作爱视频| 亚洲一区中文| 欧美中文字幕精品| 免费不卡视频| 欧美色播在线播放| 国产模特精品视频久久久久| 国产欧美一区二区三区久久人妖 | 久久成人精品| 免费视频一区| 亚洲精品一区二区三区av| 正在播放亚洲| 欧美亚洲自偷自偷| 开元免费观看欧美电视剧网站|