大話編碼解碼

1.總述

ASCII:1967誕生的只有128個拉丁字母的編碼方式,GB2312是一個漢化的ASCII,unicode是1990推出的全球編碼標準。UTF和GBK都是基於unicode的實現,GBK是漢化的UTF,二者要互通都必須先轉爲unicode。

2.編年史

1967:ASCII(American Standard Code for Information Interchange)存寫和運行一體,美國推出世界推行,一共128字符。相當於最簡單的身份證,只有姓名和籍貫。

1981:GB2312又稱爲區位碼,雖然ASCII通用,但是大陸無法推廣,認識英語的畢竟少數人。精英使用ASCII之後,模仿ASCII在華語區搞出了GB2312。相當於搞出了中國自己的身份證。

1990:unicode(全名Unicode Character Set),簡寫UCS。世界各國都搞出了自己的編碼,不同工具訪問不同國家的資源就出現了亂碼,美國推出的unicode,把各國的編碼都塞了進去。相當於搞出了世界通行的護照標準。

1990:UTF(Unicode Transformation Format,簡稱爲 UTF),unicode每個字節佔用的資源太多,不便於存儲和傳輸。類似於依據護照標準搞出了使用最廣的護照。

1995:GBK是中國基於unicode標準,做了本土化之後的產品,不考慮國際化,沒有特殊字符時,計算、傳輸效率等高很多。好比中國在自己的護照加了nfc等等。

3.戰爭史

ASCII:美國的第一代產品,西方世界使用拼寫語言的國家統統被攻佔。

GB2312:漢語屬於非拼寫類,不適合用ASCII,本土化之後就是GB2312,那段時間有些大佬就是賣漢卡起家的。漢卡就是用來做編碼解碼的。

unicode:美國把各國類似於GB2312的東西,全部柔和在一起的產品。世界通行的標準。

UTF:基於unicode標準的實現,相當於美國提供了生產護照的一整套流水線。

GBK:基於unicode標準的實現,中國做了自己生產護照的一整套流水線。

4.彩蛋

Bom:大端和小端之爭就是一個習慣問題,Byte Order Mark用於解決這個問題。人流方向是一個同源但不同解決方案的問題,人流有靠左有靠右,但是最後會歸於同一個方向,因爲和別人不同方向會遇到更大阻力。計算機代碼總是習慣於用標誌位解決這一類問題

編碼:公司軟要求UTF-8格式,這個美國定的,現在的各類編譯器也基本是他們做的,考慮統一性原則都用UTF-8,編譯時被錯誤解碼的概率小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章