字符集和編碼windows
ASCII 碼:單字節,0-127,擴展ascii編碼,最高位位1。編碼
ANSI編碼,表明系統默認編碼,在中文系統中是GB系列編碼,繁體BIG五、日文就是JIS,經過調整控制面板裏的語言區域來調整默認編碼。windows採用的代碼頁(code page)就是針對一種語言文字的字符編碼,缺失代碼頁和ANSI概念對應。擴展ascii,128-256解決部分西歐語言。code
unicode ucs編碼:將世界上全部的符號都歸入其中,每個符號都給予一個獨一無二的編碼。unicode(Universal Multiple-Octet Coded Character Set),"通用多八位編碼字符集"。
字節序,ZERO WIDTH NO-BREAK SPACE"(零寬度非換行空格)的字符,Big-Endian:FEFF,FFFE是Little-Endian。
ucs和其它ANSI的編碼能互轉,不會丟失信息。 ISO 10646標準爲UCS
Unicode 版本對應於 UCS-2,16位長orm
utf 編碼: 解決unicode幾個問題:怎麼存儲,浪費空間(英文字母,前面全是0)
UTF(Unicode Translation Format),它是Unicode (UCS)的實現(或存儲)方式,稱爲Unicode轉換格式。
utf-16 ,對應UCS-2
utf-32,對應UCS-4
utf-8,可變長度,漢字通常3個字節。採用EF BB BF開頭來識別。ip
BOM:Byte order Mark標識符:
EF BB BF UTF-8
FE FF UTF-16/UCS-2, little endian
FF FE UTF-16/UCS-2, big endian
FE FF 00 00 UTF-32/UCS-4, little endian.
00 00 FF FE UTF-32/UCS-4, big-endian.
utf-8
Unicode編碼轉換爲UTF-8編碼的方法
UTF-8就是以8位爲單元對Unicode進行編碼。下面是Unicode和UTF-8轉換的規則:
Unicode UTF-8
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxxci
「漢」字的Unicode編碼是6C49在0800 - FFFF範圍,二進制爲:0110 110001 001001,按位填充到1110xxxx 10xxxxxx 10xxxxxx--->11100110 10110001 10001001,即E6 B1 89
unicode
GB2132/GB2132-80 6763個漢字編碼,2字節it
GBK GB2132所有漢字 + 很是規漢字,編碼不一樣於GB2132io
GB18030 兼容 GBK,支持unicode,1-4字節編碼
BIG5 繁體字編碼,2字節