1. 程式人生 > >Ansi編碼和UTF-8編碼

Ansi編碼和UTF-8編碼

  • ANSI指American National Standards Institute(美國國家標準學會)。
  • ANSI編碼不是一種具體的編碼方式,而是一種指定在某些環境下使用某些編碼方式的標準。比如,在中文環境中ANSI的編碼標準為GBK,在日語環境中ANSI的編碼標準則是Shift_JIS編碼。
  • ASCII編碼使用0×00~0x7F之間的每個位元組表示一個字元,英語世界之外的其他國家對此字符集進行了擴充套件,除了ascii字符集之外,他們1個到4個位元組來表示一個字元,形成了自己語言的編碼方式,比如GBK, Big5、Shift_JIS等。
  • 中文環境下ansi編碼對應的編碼方式為GBK,GBK的編碼規則為:

a)   對於ascii字符集中的字元,使用ascii編碼(也就是說gbk編碼是相容ascii編碼的);

b)   非ascii字元使用GB標準。最早是GB2312,但是由於該標準收錄的漢字數較少,後來就被GB18030取代。GB18030也在不斷擴充套件,GB18030-2005收錄了70244個漢字。本文不在敘述gbk的具體編碼規則,簡單來說該標準表達單個字元使用1位元組、2位元組、4位元組這三種情況。

  • ASNI編碼是不利於跨語言資料交流的,比如windows檔案預設使用ANSI編碼。那麼,在中文windows下建立的檔案,在日文windows下是無法正確解析的,因為日文windows下ANSI編碼使用的是Shift_JIS編碼。
  • 為了統一世界各種語言的編碼,unicode編碼被創造出來,需要注意的是unicode也不是一個具體的編碼規則,在unicode標準下,有utf-8,utf-16等具體的實現。他們都對應不同的編碼規則。
  • 在某個角度理解,ANSI編碼是一種歷史遺留,應該被淘汰,進而使用更加先進、方便的unicode編碼。

資源