字符集是怎么樣一個演變過程呢?
這個如果講故事可以講很久了。當(dāng)計算機(jī)有美國人發(fā)明后,當(dāng)時設(shè)計到字符輸入,由于是英文字符,通過收集整理。它們形成了標(biāo)準(zhǔn)的ascii碼(128) 字符集。8位,首位為0。 由于不斷普及,歐洲西方國家相應(yīng)使用,發(fā)現(xiàn)有些特殊字符它們不能表示,如:λφ等。如是出來想法,想利用ascii碼后128位,增加它們的字符。這樣就出現(xiàn)了EASCII碼。這些還是不能表示所有國家,想法語,俄語等有自己特殊字符。因此制定標(biāo)準(zhǔn)將后128位進(jìn)行分片制定。制定出iso-8859系列字符集。
ISO/IEC 8859-1 (Latin-1) - 西歐語言
ISO/IEC 8859-2 (Latin-2) - 中歐語言
ISO/IEC 8859-3 (Latin-3) - 南歐語言。世界語也可用此字符集顯示。
ISO/IEC 8859-4 (Latin-4) - 北歐語言
ISO/IEC 8859-5 (Cyrillic) - 斯拉夫語言
ISO/IEC 8859-6 (Arabic) - 阿拉伯語
ISO/IEC 8859-7 (Greek) - 希臘語
ISO/IEC 8859-8 (Hebrew) - 希伯來語(視覺順序)
ISO 8859-8-I - 希伯來語(邏輯順序)
ISO/IEC 8859-9(Latin-5 或 Turkish)- 它把Latin-1的冰島語字母換走,加入土耳其語字母。
ISO/IEC 8859-10(Latin-6 或 Nordic)- 北日耳曼語支,用來代替Latin-4。
ISO/IEC 8859-11 (Thai) - 泰語,從泰國的 TIS620 標(biāo)準(zhǔn)字集演化而來。
ISO/IEC 8859-13(Latin-7 或 Baltic Rim)- 波羅的語族
ISO/IEC 8859-14(Latin-8 或 Celtic)- 凱爾特語族
ISO/IEC 8859-15 (Latin-9) - 西歐語言,加入Latin-1欠缺的芬蘭語字母和大寫法語重音字母,以及歐元()符號。
ISO/IEC 8859-16 (Latin-10) - 東南歐語言。主要供羅馬尼亞語使用,并加入歐元符號。
這些在一段時間,可以解決西方國家常見字符。當(dāng)后來電腦在中日韓等國家普及時候,象中國常見漢字有7000多個,擴(kuò)展128個空位,完全不夠。因此,需要用多個字節(jié)表示。后來就定,第一個字節(jié),第一位如果是1,后面還有一個字節(jié)與之一起表示一個字符。如果是0,就對應(yīng)ascii碼。 這樣就形成了國內(nèi)的gb2312,后來還是不夠表示繁體中文,加入了:gbk,最后是gb18030,但是,這樣全世界各個國家還是用它們自己字符集進(jìn)行表示。沒有一個統(tǒng)一的大字符集,能夠表示全球所有字符。直到unicode出現(xiàn),它的設(shè)計最多可以表示100多萬個字符。全球所有字符都可以收納在其中。 寫出的程序,不用經(jīng)常進(jìn)行各種編碼轉(zhuǎn)換。就可以讓世界上所有國家可以閱讀對應(yīng)字符文字。
什么是代碼頁,它與字符集有什么關(guān)系?
大家在指定網(wǎng)頁程序語言生活,還記得cp936表示中文代碼頁(code page)。那么它與我們說的gbk字符集有什么關(guān)系呢?代碼頁是字符集編碼的別名,也有人稱"內(nèi)碼表"。早期,代碼頁是IBM稱呼電腦BIOS本身支持的字符集編碼的名稱。
常見字符集與代碼頁直接映射是:
cp charset
932 — 日文
936 — 簡體中文(GBK)
949 — 韓文
950 — 繁體中文(大五碼)
1200 — UCS-2LE Unicode 小端序
1201 — UCS-2BE Unicode 大端序
65001 — UTF-8 Unicode
936就是我們的gbk字符編碼集。
本文導(dǎo)航
- 第1頁: 首頁
- 第2頁: 什么是字符編碼?
- 第3頁: 常見問題字符疑問收集
- 第4頁: 為什么bom頭會產(chǎn)生亂碼?
- 第5頁: 字符集是怎么樣一個演變過程呢?
- 第6頁: CJK字符集是什么?