關於ANSI,unicode與utf-8的區別

來源:互聯網
上載者:User

標籤:

關於ANSI,unicode與utf-8的區別

非常好的一篇文章,值得一看,特轉之

關於編碼ansi、GB2312、unicode與utf-8的區別

先做一個小小的實驗:

在一個檔案夾裡,把一個txt文本(文本裡包含“今天的天氣非常好”這句話)分別另存新檔ansi、unicode、utf-8這三種編碼的txt檔案。然後,在該檔案夾上點擊右鍵,選擇“搜尋(E)…”。

搜尋“天氣”二字,可以搜尋出ansi和unicode這兩種編碼的txt檔案,搜尋不出utf-8編碼的檔案。

原因:

1.中文作業系統預設ansi編碼,產生的txt檔案預設為ansi編碼,所以,可以搜尋出來。

2.unicode是國際通用編碼,所以,可以搜尋出來。

3.utf-8編碼是unicode編碼在網路之間(主要是網頁)傳輸時的一種“變通”和“橋樑”編碼。utf-8在網路之間傳輸時可以節約資料量。所以,使用作業系統無法搜尋出txt文本。

按照utf-8創始人的願望:

端(unicode)——傳輸(utf-8)——端(unicode)

但是,後來,許多網站開發人員在開發網頁時直接使用utf-8編碼。

端(utf-8)——傳輸(utf-8)——端(utf-8)

所以,在瀏覽器上看到的編碼是:unicode(utf-8)。正因為在瀏覽器上這麼並列地列出unicode(utf-8),造成許多網友(甚至不少程式員)誤認為unicode=utf-8。其實,按照utf-8創始人的原意,在開發網頁時使用utf-8編碼是錯誤的做法,並且,早期的瀏覽器也不支援解析utf-8編碼。但是,眾人的力量是巨大的,微軟不得不“趨炎附勢”,在瀏覽器上支援解析utf-8編碼。

問題是:utf-8編碼影響了網站開發人員,或者說,網站開發人員“擴充”了utf-8編碼的使用範圍。但是,網站開發人員仍然無法影響各類文檔的開發人員,所以,word文檔和一些國際通用的文檔仍然使用unicode編碼而不使用utf-8編碼。

比如:“嚴”的Unicode碼是4E25,UTF-8編碼是E4B8A5,兩者是不一樣的。

在中文和日文作業系統裡產生的(txt和xml)檔案的編碼雖然都是ansi,但是,在簡體中文系統下,ansi 編碼代表 GB2312 編碼,在日文作業系統下,ansi 編碼代表 JIS 編碼。不同 ansi 編碼之間互不相容,當資訊在國際間交流時,無法將屬於兩種語言的文字,儲存在同一段 ansi 編碼的文本中。

結論:國際文檔(txt和xml)使用unicode編碼是正宗做法;作業系統和瀏覽器都能夠“理解”unicode編碼。瀏覽器“迫於壓力”才“理解”utf-8編碼。但是,作業系統有時只認unicode編碼。

Unicode與Unicode big endian的區別:你吃雞蛋時先吃小頭還是先吃大頭?Unicode與Unicode big endian的區別就是在編碼時小頭優先與大頭優先的區別。“隨波逐流”使用Unicode就OK了

關於ANSI,unicode與utf-8的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.