计算机中的各种字符编码
????????在早期的計算機系統中,為了給字符編碼,美國國家標準學會(American National Standard Institute:ANSI)制定了一套英文字母、數字和常用符號的編碼,它占用一個字節,編碼范圍從0到127,最高位始終為0(一個字節8位,最高位是0,還剩7位,也就是2^7=127),稱為ASCII編碼。例如,字符'A'的編碼是0x41,字符'1'的編碼是0x31。
????????如果要把漢字也納入計算機編碼,很顯然一個字節是不夠的。GB2312標準使用兩個字節表示一個漢字,其中第一個字節的最高位始終為1,以便和ASCII編碼區分開。例如,漢字'中'的GB2312編碼是0xd6d0。
????????類似的,日文有Shift_JIS編碼,韓文有EUC-KR編碼,這些編碼因為標準不統一,同時使用,就會產生沖突。
????????為了統一全球所有語言的編碼,全球統一碼聯盟發布了Unicode編碼,它把世界上主要語言都納入同一個編碼,這樣,中文、日文、韓文和其他語言就不會沖突。
?
????????那我們經常使用的UTF-8又是什么編碼呢?因為英文字符的Unicode編碼高字節總是00,包含大量英文的文本會浪費空間,所以,出現了UTF-8編碼,它是一種變長編碼,用來把固定長度的Unicode編碼變成1~4字節的變長編碼。通過UTF-8編碼,英文字符'A'的UTF-8編碼變為0x41,正好和ASCII碼一致,而中文'中'的UTF-8編碼為3字節0xe4b8ad。
????????UTF-8編碼的另一個好處是容錯能力強。如果傳輸過程中某些字符出錯,不會影響后續字符,因為UTF-8編碼依靠高字節位來確定一個字符究竟是幾個字節,它經常用來作為傳輸編碼。
總結:
????????ASCII編碼: 一個字節(0-127,最高位固定為0),只包含英文字母、數字和常用符號。
????????GB2312標準:兩個字節,最高位固定為1,從而與?ASCII編碼區別開來,將漢字納入編碼中。
????????Unicode編碼:統一全球所有語言的編碼,把世界上主要語言都納入同一個編碼,需要兩個或更多字節表示。
????????UTF-8編碼:變長編碼,用來把固定長度的Unicode編碼變成1~4字節的變長編碼。容錯能力強,經常用來作為傳輸編碼。
總結
以上是生活随笔為你收集整理的计算机中的各种字符编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络服务器管理系统设置实训总结,网络系统
- 下一篇: Axure的使用---原型图