1、為什麼要去了解編碼格式的發展史?
為了以後不被編碼搞得頭大
2、編碼格式的祖先:ascii
很早之前,計算機只在美國,美國人為了能在計算機上列印他們自己國家的語言,他們用8個可以開合的電晶體來組成不同的狀態,來表示他們國家的字元
並將其稱為「位元組」,那為什麼是8個(女朋友也問過這個問題)?
答:如果是乙個bit,也就是只有乙個電晶體,那最多也只能表示兩種狀態,也就是兩個字元,兩個電晶體就是4種狀態,顯然並不能把他們的字母啥的都表
示出來,那最後他們發現2**7也是就0-127種狀態就夠用,那2**8是為什麼?-----留一些餘地,也就是擴充套件字元,顯然後面就用上了。。
3、群雄並起:gbk、shift-jis(日文)、euc-kr(韓文)
之後計算機使用愈發廣泛,各個國家都希望能在計算機中輸出自己國家的語言,於是乎 在原來ascii的基礎上,誕生了各個國家自己的一套編碼格式,如
中國的gbk、日本的shift-jis、南韓的euc-kr;
gb2312:當中國用上計算機的時候,ascii表 已經滿了(早期擴充套件字元是空位,後面逐漸補上的),而我們還有6000+個常用漢字需要儲存。那就自己搞吧,
就把原來127後面的奇怪的 字元都去除。規定:乙個小於127 的字元意義和之前一樣,兩個大於127 的字元連在一塊就表示乙個漢字(兩個位元組表示乙個中文);
gbk:之前的6000+個漢字不夠用,於是就有了gbk標準,gbk向下相容,又增加近20000個漢字
gb18030:對gbk的補充,增加了8000+個少數民族的字,延用至今
4、統一:unicode
各個國家搞出一套自己 的編碼標準,結果誰也不支援誰的編碼;當時要想在電腦上顯示、輸入中文,就要在裝乙個字元系統,裝錯了那就亂套了,其他國家亦如是。。
這個時候iso(國際標準化組織)就站出來,說我制定一套統一的標準,大家按這個標準來,就有了unicode編碼(萬國碼),那這個unicode編碼肯定需要具備以下特點:
這個特點就尤為重要,因為unicode出來,我不可能完全按你的unicode來,那我之前儲存在計算機中的gbk檔案不就沒用了,相當於推倒重來。
5、優化:utf-8、utf-16
unicode也向下相容,但是將原來的8位乙個位元組 擴充套件成了16位,也就是說,你在pc中存放純英文文字時,較之前浪費了一倍的空間,這就有了utf編碼。
utf(unicode transfer format):其中utf8,表示8位傳輸資料,utf16就表示任何字元都以16位傳輸,這裡的傳輸表示的是存到硬碟中的 一種狀態,肯定優先選擇
utf8。因為在utf8編碼下,使用1-4個位元組表示乙個字元,原來的ascii還是以8位存在硬碟中,而中文則是以3個位元組,也就是24位存放。
最後總結:根據自己文件包含的內容來設定編碼格式,如只有中文和英文的就可以使用gbk,如果含有其他字元,建議使用utf8。一般使用utf8編碼,較為靈活,更不容易
出亂碼問題。
計算機編碼發展史
很久很久以前,有一群人,他們決定用8個可以開合的電晶體來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,於是他們把這稱為 位元組 再後來,他們又做了一些可以處理這些位元組的機器,機器開動了,可以用位元組來組合出很多狀態,狀態開始變來變去。他們看到這樣是好的,於是它們就這機器稱為 計...
IT薪水發展史
1k 兄弟別做it了,不論你是什麼公司,國營的做it就是配角,那位兄弟願意一輩子做配角,非國營的嗎,看看做什麼別的合適,it不好混,趁早離開 1k 3k 初級階段,一般是剛進公司的,肯定非常缺錢,這時候動力足,也有時間,沒有男 女朋友拖累,象公司內部5k 6k的高手學習。什麼,沒有,什麼爛公司,你也...
記憶體發展史
記憶體 容量 指標 時期出現原因 simm記憶體 30pin 256kb 1982年至今 軟體程式和新一代80286硬體平台的出現 simm記憶體 72pin 512kb 2mb 1988 1990 pc迎來386和486時代,cpu向16bit發展 edo dram 4 16mb 電壓 5v 頻寬...