亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

編碼史記

 更新時(shí)間:2012年04月21日 13:39:59   作者:  
昨天聽(tīng)了一個(gè)同事的編碼講座,很精彩。想起了要寫(xiě)這個(gè)文章分享一下各種編碼是如何產(chǎn)生的
字符編碼的故事
字符是什么
字符是什么?就是有意義的圖形,比如a,中等。在不同的國(guó)家代表不同的意思。

但是在計(jì)算機(jī)世界中只有0和1,好了,如何用0和1將這些字符表示出來(lái)呢?這就是編碼存在的意義。

編碼一點(diǎn)也不高深,就是一個(gè)計(jì)算機(jī)的01和字符ab的簡(jiǎn)單映射。

于是故事開(kāi)始了...
很久很久以前,計(jì)算機(jī)世界只有美國(guó)人。美國(guó)人的文字造詣很低的,他們的所有文字就只有24個(gè)字母,甚至加上大寫(xiě)和小寫(xiě),阿拉伯?dāng)?shù)字,計(jì)算機(jī)中的控制符(回車(chē)啥的)都不超過(guò)256個(gè)(只有127個(gè))。于是,對(duì)于他們來(lái)說(shuō),很自然,那么計(jì)算機(jī)中用8位就可以表示他們的所有字符了吧。于是他們將8位稱(chēng)作一個(gè)字節(jié),計(jì)算機(jī)的8位表示的每個(gè)數(shù)字對(duì)應(yīng)了一個(gè)英文字符,畫(huà)了一張表(ASCII碼表)。最早的編碼AscII碼出現(xiàn)了。

歐洲人出場(chǎng)了。歐洲是有好多個(gè)國(guó)家的,他們的每個(gè)國(guó)家也都有自己的文字,比如拉丁文,希臘文等。怎么辦呢?于是想到,你美國(guó)人指定的ASCII碼表里面不是只有127個(gè)字符嗎,后面128-255的字符不是說(shuō)待定嗎,好吧,我們就不客氣了。于是歐洲人就將各種奇怪的語(yǔ)言塞入127后面的字符中,形成了一系列的ISO 8859字符集。比如希臘文塞入ASCII,就形成了ISO/IEC 8859-7,西歐語(yǔ)種塞入ASCII就形成了ISO/IEC 8859-1,ISO/IEC 8859-1也叫做latin-1。(對(duì),就是mysql里面經(jīng)常見(jiàn)到的編碼)

下面是ISO 8859現(xiàn)有的15個(gè)字符集

ISO/IEC 8859-1 (Latin-1) - 西歐語(yǔ)言
ISO/IEC 8859-2 (Latin-2) - 中歐語(yǔ)言
ISO/IEC 8859-3 (Latin-3) - 南歐語(yǔ)言。世界語(yǔ)也可用此字符集顯示。
ISO/IEC 8859-4 (Latin-4) - 北歐語(yǔ)言
ISO/IEC 8859-5 (Cyrillic) - 斯拉夫語(yǔ)言
ISO/IEC 8859-6 (Arabic) - 阿拉伯語(yǔ)
ISO/IEC 8859-7 (Greek) - 希臘語(yǔ)
ISO/IEC 8859-8 (Hebrew) - 希伯來(lái)語(yǔ)(視覺(jué)順序)
ISO 8859-8-I - 希伯來(lái)語(yǔ)(邏輯順序)
ISO/IEC 8859-9(Latin-5 或 Turkish)- 它把Latin-1的冰島語(yǔ)字母換走,加入土耳其語(yǔ)字母。
ISO/IEC 8859-10(Latin-6 或 Nordic)- 北日耳曼語(yǔ)支,用來(lái)代替Latin-4。
ISO/IEC 8859-11 (Thai) - 泰語(yǔ),從泰國(guó)的 TIS620 標(biāo)準(zhǔn)字集演化而來(lái)。
ISO/IEC 8859-13(Latin-7 或 Baltic Rim)- 波羅的語(yǔ)族
ISO/IEC 8859-14(Latin-8 或 Celtic)- 凱爾特語(yǔ)族
ISO/IEC 8859-15 (Latin-9) - 西歐語(yǔ)言,加入Latin-1欠缺的芬蘭語(yǔ)字母和大寫(xiě)法語(yǔ)重音字母,以及歐元(€)符號(hào)。
ISO/IEC 8859-16 (Latin-10) - 東南歐語(yǔ)言。主要供羅馬尼亞語(yǔ)使用,并加入歐元符號(hào)。


接著偉大的中國(guó)人也開(kāi)始使用上電腦了。中文可不得了,文字博大精深,字符遠(yuǎn)遠(yuǎn)超過(guò)了256個(gè)。所以我們無(wú)法使用ASCII的擴(kuò)展了。怎么辦呢? 1981年的時(shí)候,國(guó)家派一批人來(lái)做了這個(gè)事情,他們統(tǒng)計(jì)出所有的中文大概有6000多個(gè)字符(后來(lái)證明這些人的水品也是有限,好多字符都沒(méi)有搜出來(lái),于是就有了多種的中文編碼),用兩個(gè)字節(jié)(16bit)來(lái)表示,16bit能表示的是65536個(gè)字符,太夠了。我們將16bit分為前8bit和后8bit
如果前8bit小于127(英文ASCII),那么這個(gè)8bit就是表示英文
如果前8bit大于127,那么這8bit和后面的8bit合起來(lái)表示一個(gè)中文
GB是啥意思?國(guó)標(biāo)。

好了,后來(lái)某些領(lǐng)導(dǎo)發(fā)現(xiàn),他的名字沒(méi)法編碼了,這個(gè)問(wèn)題出來(lái)了。6000個(gè)漢字還不足以囊括所有中文,國(guó)家在1995年又組織了一批人,繼續(xù)搜羅一些生僻字,一共搜集出了21886個(gè)漢字和字符,形成了GBK編碼,GBK編碼向下兼容GB2312。

K是啥意思?擴(kuò)展。

再后來(lái)發(fā)現(xiàn)了,一些滿(mǎn)文,蒙古文啥的少數(shù)名族的語(yǔ)言沒(méi)有編輯到GBK中,繼續(xù)編輯收錄,形成了GB18030編碼。

中國(guó)臺(tái)灣的人民當(dāng)然不能使用大陸編輯使用的GBXX系列編碼了,于是他們自己搞了一套BIG5中文編碼,收錄了13060個(gè)漢字和字符。但是這里要注意,BIG5的編碼映射表和GBXX系列的就完全不一樣了,比如同一個(gè)“中”字,在BIG5和GB2312中就是兩個(gè)完全不同的字節(jié)。這里就會(huì)有亂碼出現(xiàn)了,比如("陶喆"和"陶吉吉"),各種簡(jiǎn)體中文和繁體文的轉(zhuǎn)碼工具就出現(xiàn)了。
BIG5是什么意思?
五種中文套裝軟體:文書(shū)處理,資料庫(kù),試算表,通訊,繪圖。大致的意思是這套編碼主要使用于這5個(gè)領(lǐng)域

各個(gè)國(guó)家使用各個(gè)國(guó)家自己的編碼有沒(méi)有很繁瑣?于是大家很期盼有一種統(tǒng)一的編碼形式出現(xiàn)。Unicode編碼出現(xiàn)了。Unicode使用的通用的字符集叫做UCS。這個(gè)字符集就是一個(gè)大的字符空間,每個(gè)語(yǔ)種都在這個(gè)字符空間內(nèi)劃分一段領(lǐng)域?,F(xiàn)在應(yīng)用的UCS是UCS-2,意思就是不管是英文中文,統(tǒng)一使用兩個(gè)字節(jié)(16bit)來(lái)進(jìn)行字符分配。UCS-2字符集可以表示216(即65536)個(gè)字符。已經(jīng)基本滿(mǎn)足世界上所有語(yǔ)言了。如果不夠怎么辦?已經(jīng)有預(yù)定方案UCS-4(用4個(gè)字節(jié)表示一個(gè)字符)。

切記:UTFXX是Unicode的具體實(shí)現(xiàn)方式。
UTF-16是Unicode最基本的實(shí)現(xiàn)。Unicode使用16bit表示一個(gè)字符,UTF-16就是直接將字符集的映射搬過(guò)來(lái)而已。

本來(lái)這樣就已經(jīng)很美好了,但是美國(guó)人又不干了。憑什么每個(gè)英語(yǔ)字符要占用2個(gè)字節(jié)?憑什么占用了我們的帶寬和CPU?于是一幫英語(yǔ)體系的外國(guó)人討論出了UTF-8這種字符編碼。
UTF-8這種編碼是怎么回事呢?
英文字符,和ASCII碼一樣,占用一個(gè)字節(jié)
其他語(yǔ)種,每種語(yǔ)種分配一個(gè)模板,這個(gè)模板有16bit,24bit,甚至還有32bit的。各個(gè)語(yǔ)種根據(jù)這個(gè)模板,將自己的語(yǔ)言轉(zhuǎn)化成模板要求的編碼(UTF-8)


這里演示一個(gè)中文字“漢”
比如中文分到的模板是1110xxxx 10yyyyyy 10zzzzzz
漢字的Unicode編碼是0x6C49,二進(jìn)制是0110 1100 0100 1001
將這個(gè)二進(jìn)制按照模板的x,y,z順序插入
得到11100110 10110001 10001001 就是E6 B1 89


好了…大家看出這個(gè)對(duì)中文有什么不好的嗎?原先一個(gè)中文使用UTF-16只需要兩個(gè)字節(jié),但是使用UTF-8卻需要3個(gè)字節(jié),如果一個(gè)網(wǎng)頁(yè)有1w個(gè)中文字,那么我們就需要多傳輸1w個(gè)字節(jié),帶寬?。?! 現(xiàn)在就明白了,為什么國(guó)內(nèi)一些網(wǎng)站,比如sina,它的編碼規(guī)則是使用GBK了吧!

下面再說(shuō)一下很多編輯器的自動(dòng)編碼匹配的問(wèn)題。編輯器會(huì)檢查出你輸入的字符是UTF-8還是GBK,基本根據(jù)的就是這個(gè)UTF-8模板,如果符合模板,就會(huì)判斷是UTF-8。很多文章說(shuō)的txt中輸入“聯(lián)通”存為GBK編碼再打開(kāi)會(huì)出現(xiàn)亂碼就是這個(gè)原因?qū)е碌摹?
具體請(qǐng)看這篇文章

還有一種ANSI是什么呢?windows內(nèi)核是使用UTF-16編寫(xiě)的,但是頁(yè)面上展示的語(yǔ)言是根據(jù)系統(tǒng)設(shè)置的“語(yǔ)言”來(lái)展示的。ANSI就是windows系統(tǒng)根據(jù)你設(shè)置的語(yǔ)言環(huán)境而進(jìn)行自動(dòng)變化的一種編碼。比如在中文windows系統(tǒng)下,ANSI就代表GBK編碼,日文操作系統(tǒng)下就代表JIS編碼。

參考資料

字符編碼詳解及由來(lái)
字符集和字符編碼

相關(guān)文章

  • win10環(huán)境下使用Hyper-V進(jìn)行虛擬機(jī)創(chuàng)建的教程(圖解)

    win10環(huán)境下使用Hyper-V進(jìn)行虛擬機(jī)創(chuàng)建的教程(圖解)

    這篇文章主要介紹了win10環(huán)境下使用Hyper-V進(jìn)行虛擬機(jī)創(chuàng)建的教程,本文圖文詳解給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SecureCRT的下載、安裝詳細(xì)過(guò)程

    SecureCRT的下載、安裝詳細(xì)過(guò)程

    SecureCRT是一款支持SSH的終端仿真程序,在今后的工作和學(xué)習(xí)中會(huì)經(jīng)常的用到用來(lái)連接linux服務(wù)器。本文重點(diǎn)給大家介紹SecureCRT的下載、安裝詳細(xì)過(guò)程,感興趣的朋友一起看看吧
    2021-11-11
  • Web Jmeter–接口測(cè)試工具詳解

    Web Jmeter–接口測(cè)試工具詳解

    本文主要介紹Web Jmeter接口測(cè)試工具,這里整理了詳細(xì)的資料來(lái)說(shuō)明Jmeter 的使用,有需要的小伙伴可以參考下
    2016-09-09
  • github pull最新代碼實(shí)現(xiàn)方法

    github pull最新代碼實(shí)現(xiàn)方法

    本文主要介紹 github pull最新代碼的資料,這里對(duì) github pull最新代碼做了詳細(xì)流程介紹,有需要的小伙伴可以參考下
    2016-09-09
  • prometheus安裝和使用過(guò)程

    prometheus安裝和使用過(guò)程

    Prometheus是一個(gè)開(kāi)源的系統(tǒng)監(jiān)控和報(bào)警系統(tǒng),通常會(huì)搭配prometheus進(jìn)行監(jiān)控,同時(shí)也支持多種exporter采集數(shù)據(jù),還支持pushgateway進(jìn)行數(shù)據(jù)上報(bào),Prometheus性能足夠支撐上萬(wàn)臺(tái)規(guī)模的集群,這篇文章主要介紹了prometheus安裝和使用記錄,需要的朋友可以參考下
    2023-06-06
  • 將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎

    將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎

    python的優(yōu)勢(shì)在于數(shù)據(jù)處理和人工智能等方向,所以go只可能吞噬Java的份額,很難撼動(dòng)Python的奶酪,所以將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎
    2019-04-04
  • Python和Go成為2019年最受歡迎的黑客工具(推薦)

    Python和Go成為2019年最受歡迎的黑客工具(推薦)

    這篇文章主要介紹了Python和Go成為2019年最受歡迎的黑客工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 好玩的vbs小程序之關(guān)機(jī)功能

    好玩的vbs小程序之關(guān)機(jī)功能

    這篇文章主要介紹了好玩的vbs小程序之關(guān)機(jī)功能,非常有趣,感興趣的朋友跟隨小編一起看看吧
    2019-09-09
  • 詳解Git.gitignore開(kāi)發(fā)必備建議收藏

    詳解Git.gitignore開(kāi)發(fā)必備建議收藏

    這篇文章主要介紹了Git.gitignore的全面詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • idea自帶的數(shù)據(jù)庫(kù)可視化工具的使用

    idea自帶的數(shù)據(jù)庫(kù)可視化工具的使用

    開(kāi)發(fā)Java應(yīng)用程序,作為明星工具IntelliJ IDEA當(dāng)然是首選,本文主要介紹IDEA下自帶的數(shù)據(jù)庫(kù)可視化工具,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09

最新評(píng)論