計算機只能識別二進位制資料,早期由來是電訊號。為了方便應用計算機,讓它可以識別各個國家的文字。就將各個國家的文字用數字來表示,並一一對應,形成一張表。這就是編碼表。
iso8859-1:拉丁碼表。歐洲碼表
gb2312:中國的中文編碼表。最多兩個位元組編碼所有字元
unicode:國際標準碼,融合了目前人類使用的所有字元。為每個字元分配唯一的字元碼。所有的文字都用兩個位元組來表示。
utf-8:變長的編碼方式,可用1-4個位元組來表示乙個字元。
unicode不完美,這裡就有三個問題,乙個是,我們已經知道,英文本母只用乙個位元組表示就夠了,第二個問題是如何才能區別unicode和ascii?計算機怎麼知道兩個位元組表示乙個符號,而不是分別表示兩個符號呢?第三個,如果和gbk等雙位元組編碼方式一樣,用最高位是1或o表示兩個位元組和乙個位元組,就少了很多值無法用於表示字元,不夠表示所有字元。unicode在很長一段時間內無法推廣,直到網際網路的出現。
面向傳輸的眾多utf (ucs transfer format)標準出現了,顧名思義,utf-8就是每次8個位傳輸資料,而utf-16就是每次16個位。這是為傳輸而設計的編碼,並使編碼無國界,這樣就可以顯示全世界上所有文化的字元了。
unicode只是定義了乙個龐大的、全球通用的字符集,並為每個字元規定了唯一確定的編號,具體儲存成什麼樣的位元組流,取決於字元編碼方案。推薦的unicode編碼是utf-8和iutf-16。
在標準utf-8編碼中,超出基本多語言範圍(bmp-basic multilingual plane )的字元被編碼為4位元組格式,但是在修正的utf-8編碼中,他們由**編碼對(surogatepairs )表示,然後這些**編碼對在序列中分別重新編碼。結果標準utf-8編碼中需要4個位元組的字元,在修正後的utf-8編碼中將需要6個位元組。
ansi:美國國家標準協會(american national standards institute:ansi)
編碼轉換 單個檔案存在多種編碼字符集
linux 檔案中存在多行編碼不一致的情況,這個時候對整個檔案的編碼轉換報錯導致的編碼轉換失敗,這裡做乙個總結。可能產生的原因 檔案存在編碼不一致的行 此時檔案內容 檔案內容 檔案中存在有些行使用的編碼字符集不一致的情況,這個時候如果使用iconv直接對檔案轉換編碼會報錯。報錯資訊 如果能使用fil...
字元編碼集
ascii american standard code for information interchange 美國資訊互換標準 是基於常用的英文本元的一套電腦編碼系統。我們知道英文中經常使用的字元 數字符號被計算機處理時都是以二進位製碼的形式出現的。這種二進位製碼的集合就是所謂的 ascii 碼...
VBS字元編碼的說明
msdn文件對ascw的說明是 ascw是為使用unicode字元的32位平台提供的。它返回unicode 寬型 字元 因此可以避免從ansi到unicode的 轉換。按照參考手冊的定義,ascw函式應該返回乙個字元的unicode字元編碼,但是直接拿返回的結果來用的話會有潛在的bug,正如我碰到的...