ASCII,ISO8859,ANSI,utf-8,這些名字想必大家都很熟悉,但要講出這些字符集的區別,還真有點糊涂,我也是今天才弄明白他們的意思,特記錄之。
1. ASCII, 編碼結構為7位,第8位沒有使用,主要包括基本的大小寫字母與常用符號。其中,32-127表示大小寫字符,32表示空格,32以下是控制字符。
2. ISO-8859,在ASCII編碼基礎上制定的編碼標準。包括128個ascii字符,并新增了128個字符,用于西歐國家的符號。
3. ANSI, 代表本地編碼,是為使計算機支持更多語言而實現的編碼方案, 通常使用0x80-0xff范圍的2個字節來表示1個字符,比如,漢字“中”,使用[0xD6,0xD0]這兩個字節存儲。由于各個國家有自己的編碼標準,如我國用gb2312, 臺灣用Big5等。這些使用2字節來代表1個字符的各種文字延伸編碼方式,稱為ANSI編碼。
4. GB2312, 用兩個數來編碼漢字和中文符號,又稱區位碼。 GBK是對gb2312的擴充,包含2萬多個字符。
5. Unicode字符集, 按其基本長度所用位數分為utf-8/16/32三種。 UTF是所有其他字符集標準的一個超集,它保證與其他字符集是雙向兼容的,就是說,如果將任何文本字符串轉換到utf格式,然后再翻譯回原編碼,也不會丟失任何信息。
a. UTF-8: 保持字母數字一個字節,其他的用不定長編碼到最多6個字節,前64k的unicode編成utf-8只需3個字節。
b. UTF-16: 長度固定,用2個字節表示,超出部分用2個utf-16,即4個字節表示。UTF-32同理。
摘自杜江的《php與mysql web開發技術詳解》
posted on 2010-12-07 10:45
Aaron.Chu 閱讀(239)
評論(0) 編輯 收藏