編碼方式和字符集理解

2021-06-11 12:11:59 字數 1843 閱讀 5390

(1)概念

位(bit):資料儲存的最小單位。位,簡記為b,也稱為位元,每個0或1就是乙個位(bit)。計算機中的cpu位數指的是cpu一次能處理的最大位數。

位元組(byte):8 bit就稱為乙個位元組(byte)。

(2)ascii(美國資訊交換標準**,americanstandard code for information interchange)

如今使用的所說的ascii碼實際是由基礎ascii和擴充套件ascii(ibm擴充套件字符集)組成的。

基礎ascii又稱標準ascii,使用7位二進位制數來表示所有的大寫和小寫字母,數字0到9、標點符號,以及在美式英語中使用的特殊控制字元,總共有128個。但是ascii碼是用乙個位元組來存放的,乙個位元組是8位,多餘一位用作檢查編碼出錯的奇偶較驗位。

擴充套件ascii碼是在原有的7位上加了一位,變成8位,形成擴充套件ascii字符集。擴充套件ascii字符集包含2^8=256個字元,

並且其中的前128個字元與原來的ascii字符集相同(就是原來的ascii字符集的7位編碼前面加乙個0),而後面128個字元高位都是1。後128個字元用來表示附加的128個特殊符號字元、外來語字母和圖形符號。

(3)unicode

unicode中每個字元都是16位寬,可以代表2^16=25536個字元。它為每種語言中的每個字元設定了統一並且唯一的二進位制編碼,以滿足跨語言、跨平台進行文字轉換、處理的要求。但是值得注意的是unicode只是乙個符號集,它只規定了符號的二進位制**,卻沒有規定這個二進位制**應該如何儲存。所以unicode有了不同的編碼方式,包括utf-8、utf-16、utf-32等。unicode中每個字元都是16位寬

,所以8位的值在unicode中是沒有意義的。

(4)ansi編碼(americannational standards institute,美國國家標準學會的標準碼)

ansi碼:為使計算機支援更多語言,通常使用0x80~0xff(即128 - 256)範圍的 2個位元組來表示 1個字元。比如:漢字'中'在中文作業系統中,使用 [0xd6,0xd0]這兩個位元組儲存。

對於ansi編碼而言,0x00~0x7f之間的字元,依舊是1個位元組代表1個字元。這一點是ansi編碼與unicode(utf-16)編碼之間最大也最明顯的區別。

不同的國家和地區制定了不同的標準,由此產生了 gb2312, big5, jis等各自的編碼標準。這些使用2個位元組來代表

乙個字元的各種漢字延伸編碼方式,稱為 ansi 編碼。在簡體中文系統下,ansi 編碼代表gb2312 編碼,在日文操作系

統下,ansi編碼代表 jis編碼。

不同 ansi編碼之間互不相容,當資訊在國際間交流時,無法將屬於兩種語言的文字

,儲存在同一段 ansi 編碼的文字中。

當然對於ansi編碼而言,0x00~0x7f之間的字元,依舊是1個位元組代表1個字元。

這一點是asni編碼與unicode編碼之間最大也最明顯的區別。

(5)雙位元組字符集(dbcs)

最初的128個**是ascii,較高的128個**中的某些總是跟隨著第二個位元組。這兩個位元組一起(稱作首位元組和跟隨位元組)定義乙個字元,通常是乙個複雜的象形文本。

unicode使用(特別在c程式語言環境裡)寬字符集。unicode中的每個字元都是16位元寬而不是8位元寬。在unicode中,沒有單單使用8位元數值的意義存在。相比之下,在雙位元組字符集中我們仍然處理8位元數值。有些位元組自身定義字元,而某些位元組則顯示需要和另乙個位元組共同定義乙個字元。

ascii、ansi、dbcs中兩個位元組儲存的字元,它們的兩個位元組都可以分解,可以代表不同的意思,合起來才代表乙個字元。

unicode中單個位元組是沒有意義的,它的最基本的字元都有16位寬。

初識編碼,有寫的不對的地方,請指證。

字符集 字元編碼方式

字符集 字元編碼方式 字符集 character set 是多個字元的集合,字符集種類較多,每個字符集包含的字元個數不同,這裡的字元可以是英文本元,漢字字元,或者其他國家語言字元。常見字符集包括 ascii字符集 latin1字符集 gb2312字符集 gbk字符集 gb18030字符集 unico...

字符集和字符集編碼詳解

gb2312 gbk ascii asni unicode utf 8等等,這些字眼非常常見,同時帶來許多的問題。本文只是從理解的角度,說明以上內容的不同含義從而達到區分其用法的目的是夠了的。至於實現方式,可以查閱各自的詳細標準官方文件。先解釋乙個概念,什麼是字符集,嗯,不解釋了,我弄乙個吧 從今以...

字符集和編碼

什麼是字元?字元就是文字和符號的統稱,字符集就是多個字元的集合,字符集有很多種,常見的有ascii,gb2312,unicode字符集。什麼是編碼?計算機要準確的處理字符集中的文字,就需要對字元進行編碼。對unicode字符集編碼的叫做unicode編碼,對ascii字符集編碼叫做ascii編碼。a...