簡單講ASCII碼與Unicode碼的區別

簡單講ASCII碼與Unicode碼的區別

ASCII碼

American Standard Code for Information Interconnection--美國信息交換標準代碼

因為計算機只識別0和1,ASCII碼是為了建立英文字符與二進制的映射關係,而制定的編碼規範.

●它用一個字節(8位寬度)來表示一個英文字符,字節的最高位統一規定為0,剩餘7位用來存儲數據,表示字符. 所以ASCII碼能表示128個字符(2的7次方=128,)也就是0-127字段.其中包括英文字符,阿拉伯數字,西文字符以及32個控制字符.

ASCII碼編碼的字符太少,後來為了加入其它西文字符的編碼,又有了擴展的ASCII編碼

●擴展的ASCII編碼,實在原來ASCII碼的基礎上,把字節的最高位原本統一設置為0的,也用來存儲字符數據,所以就能表示256個英文字符(0-255).很多國家擴展的ASCII碼不統一,導致無法通用.0-127字段對應的字符和ASCII碼一樣,各個國家都是統一的.但是擴展的部分156-255字段映射的字符就不相同了.

下面給出了部分ASCII表.

簡單講ASCII碼與Unicode碼的區別

ascii

簡單講ASCII碼與Unicode碼的區別

ascii

Unicode編碼

簡單講ASCII碼與Unicode碼的區別

由於ASCII編碼方式包含的字符太少,基本只對英文字符進行了編碼.

中國用GB2312等對簡體漢字進行了編碼.別的國家也有自己的編碼方式.

為了方便交流,防止亂碼,Unicode編碼方式應運而生.

Unicode編碼被稱為萬國碼,單一碼,統一碼.它是為每種語言的每個字符都設定了統一的,唯一的二進制編碼,以滿足跨語言,跨平臺進行文本交換和處理的需求,是計算機科學領域的一項業界標準.

Unicode編碼用兩個字節來存儲一個字符,所以它最大可以對65536個字符(2的16次方)進行編碼.它包含了世界上所有的字符,每個字符都是用獨一無二的二進制表示.

●用Unicode對英文進行編碼,相對於ASCII編碼來說,會更佔用空間.Unicode使用兩個字節存儲,英文存儲只需要佔用一個字節,用Unicode編碼,就會在多出的一個字節上全部置零.這就造成了空間浪費.於是就有了UTF-8編碼

UTF-8編碼

(8-bit Unicode Transformation format)它是Unicode的實現方式,是一種可變字節的編碼方式,用1-4個字節來表示一個字符.對英文就使用一個字節來表示.對漢字就使用兩個字節來表示.有更復雜的字符就用3-4個字節來表示.

●半角逗號與全角逗號有什麼卻別呢??

半角逗號用在英文環境中,和英文字符一樣佔用一個字節.全角逗號用在漢語環境中,和漢字字符一樣佔用兩個字符.

●在windows環境中,編程中的

"\r":(Carriage Return回車)表示回到當前行的行首,而不是換到下一行.

"\n":(換行 Line Feed)表示換到當前位置的下一行,而不是回到行首.


分享到:


相關文章: