字符編碼集


ASCII 碼:

在計算機內部,所有數據都使用二進制表示。每一個二進制位(bit)有 0 和 1 兩種狀態,因此 8 個二進制位就可以組合出 256 種狀態,這被稱為一個字節(byte)。      一個字節一共可以用來表示 256 種不同的狀態,每一個狀態對應一個符號,就是 256 個符號,從 0000000 到 11111111。

ASCII碼:上個世紀60年代,美國制定了一套字符編碼,對英語字符與二進制位之間的關系,做了統一規定。這被稱為ASCII碼。ASCII碼一共規定了128個字符的編碼,比如空格“SPACE”是32(二進制00100000),大寫的字母A是65(二進制01000001)。這128個符號(包括32個不能打印出來的控制符號),只占用了一個字節的后面7位,最前面的1位統一規定為0。

缺點:

不能表示所有字符。

相同的編碼表示的字符不一樣:比如,130在法語編碼中代表了é,在希伯來語編碼中卻代表了字母Gimel (ג)

Unicode 編碼:

Unicode碼:可以包含世界上所有的字符,但固定的長度,有些浪費存儲空間,Unicode 編碼表中的字符占兩個字節;

亂碼:世界上存在着多種編碼方式,同一個二進制數字可以被解釋成不同的符號。因此,要想打開一個文本文件,就必須知道它的編碼方式,否則用錯誤的編碼方式解讀,就會出現亂碼。

Unicode:一種編碼,將世界上所有的符號都納入其中。每一個符號都給予一個獨一無二的編碼,使用 Unicode 沒有亂碼的問題。

Unicode 的缺點:Unicode 只規定了符號的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲:無法區別 Unicode 和 ASCII:計算機無法區分三個字節表示一個符號還是分別表示三個符號。另外,我們知道,英文字母只用一個字節表示就夠了,如果unicode統一規定,每個符號用三個或四個字節表示,那么每個英文字母前都必然有二到三個字節是0,這對於存儲空間來說是極大的浪費。

UTF-8:

UTF-8 : 對Unicode的優化,可以包含世界上所有字符,字母占1個字節,漢字占3個字節;

UTF-8 是在互聯網上使用最廣的一種 Unicode 的實現方式。

UTF-8 是一種變長的編碼方式。它可以使用 1-6 個字節表示一個符號,根據不同的符號而變化字節長度。

UTF-8的編碼規則:

1)對於單字節的UTF-8編碼,該字節的最高位為0,其余7位用來對字符進行編碼(等同於ASCII碼)。

2)對於多字節的UTF-8編碼,如果編碼包含 n 個字節,那么第一個字節的前 n 位為1,第一個字節的第 n+1 位為0,該字節的剩余各位用來對字符進行編碼。在第一個字節之后的所有的字節,都是最高兩位為"10",其余6位用來對字符進行編碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM