轉載html
http://www.cnblogs.com/yangyxd/articles/4778483.html
字符集 | ANSI (ASCII) |
GB 2312 |
GBK |
GB18030 信息交換用漢字編碼字符集基本集的擴充 |
UTF-8 |
UTF-16 |
BIG5 |
英文字符 | 1 字節 | 1 字節 | 1 字節 | 1 字節 | 1 字節 | 2 字節 | 1 字節 |
中文字符 | 不支持 | 2 字節 | 2 或 4 字節 | 2 或 4 字節 | 3 ~ 4 字節 | 2 或 4 字節 | 2 字節 |
Delphici 2007(及更早)get |
AnsiString | AnsiString | AnsiString | AnsiString | AnsiString | WideString | AnsiString |
Delphi 2009 (大於或等於) |
AnsiString | AnsiString | AnsiString | AnsiString | UTF8String | UnicodeString | AnsiString |
表示法 | 7位(bits)表示一個字符,共128字符,字符值從0到127,其中32到126是可打印字符。 ASCII擴展字符集使用8位(bits)表示一個字符,共256字符。it |
EUC-CN 「第一位字節」使用0xB0-0xF7 「第二位字節」使用0xA1-0xFE |
GBK/1: 0xA1A0~0xA9EF(部分) GB2312非漢字符號 GBK/2: 0xB0A0~0xF7FE(部分) GB2312漢字 上面兩個是GB2312的擴展,向上兼容; GBK/3: 0x8140~0xA0FE(部分) 擴充漢字 包括繁體 GBK/4: 0xAA40~0xFEA0(部分) 擴充漢字 包括繁體 GBK/5: 0xA840~0xA995(部分) 擴充非漢字 |
單字節字符: 0x00至0x7F碼(對應於ASCII碼的相應碼)。 雙字節字符: 採用GB/T 11383未採用的0x30到0x39做爲對雙字節編碼擴充的後綴,這樣擴充的四字節編碼,其範圍爲0x81308130到0xFE39FE39。其中第1、三個字節編碼碼位均爲0x81至0xFE,第2、四個字節編碼碼位均爲0x30至0x39。 |
UTF-8使用使用1到6個可變長字節編碼UNICODE字符。 每一個字節由一個換碼序列開始。第一個字節由惟一的換碼序列,由n位連續的1加一位0組成, 首字節連續的1的個數表示字符編碼所需的字節數。 Unicode轉換爲UTF-8字節數計算規則: 若是Unicode小於0X80(Ascii字符),則轉換後爲1個字節。不然轉換後的字節數爲Unicode二進制位數加3再除以5。 ASCII字母使用1字節,重音文字、希臘字母或西裏爾字母等使用2字節來儲存,經常使用的漢字就要使用3字節,輔助平面字符則使用4字節。 |
首256字符保留給ISO 8859-1所定義的字符。 UTF-16的大尾序和小尾序儲存形式都在用。通常來講,以Macintosh製做或儲存的文字使用大尾序格式,以Microsoft或Linux製做或儲存的文字使用小尾序格式。 爲了弄清楚UTF-16文件的大小尾序,在UTF-16文件的開首,都會放置一個U+FEFF字符做爲Byte Order Mark(UTF-16LE以FF FE表明,UTF-16BE以FE FF表明),以顯示這個文字檔案是以UTF-16編碼,其中U+FEFF字符在UNICODE中表明的意義是ZERO WIDTH NO-BREAK SPACE,顧名思義,它是個沒有寬度也沒有斷字的空白。 |
高位字節: 0xA1-0xF9, 低位字節: 0x40-0x7E及0xA1-0xFE 中文字符編碼規則: 第一個字節 從0X81-0XFE,共126種 第二個字節 分別爲0X40-0X7E,0XA1-0XFE,共157種 |
備註 | 1. 基於羅馬字母表的一套電腦編碼系統。 2. 它主要用於顯示現代英語和其餘西歐語言。它是現今最通用的單字節編碼系統,並等同於國際標準ISO 646。 3. ASCII擴展字符集:它是從ASCII字符集擴充出來的,擴充後的符號增長了表格符號、計算符號、希臘字母和特殊的拉丁符號。 |
1. 共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個;同時,GB 2312收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西裏爾字母在內的682個全角字符。 2. 整個字符集分紅94個區,每區有94個位。每一個區位上只有一個字符,所以可用所在的區和位來對漢字進行編碼,稱爲區位碼。各區包含的字符以下:01-09區爲特殊符號;16-55區爲一級漢字,按拼音排序;56-87區爲二級漢字,按部首/筆畫排序;10-15區及88-94區則未有編碼。 3. 把換算成十六進制的區位碼加上2020H,就獲得國標碼。國標碼加上8080H,就獲得經常使用的計算機機內碼。 |
兼容 GB2312 中的所有漢字和符號。整體編碼範圍爲 8140-FEFE,首字節在 81-FE 之間,尾字節在 40-FE 之間(不包括0x7F)。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號 883 個。 | 1. 該標準的字符總編碼空間超過150萬個編碼位,收錄了27484個漢字,覆蓋中文、日文、朝鮮語和中國少數民族文字。 2. 與Unicode 3.0版本兼容,填補Unicode擴展字符字彙「統一漢字擴展A」的內容。而且與之前的國家字符編碼標準(GB2312,GB13000.1)兼容。 3. GB 18030標準採用單字節、雙字節和四字節三種方式對字符編碼。 4. 2001年8月31往後在中國市場上發佈的軟件必須符合本標準。 |
1. Unicode轉換爲UTF-8時可將Unicode二進制從低位往高位取出二進制數字,每次取6位,如上述的二進制就能夠分別取出爲以下示例所示的格式,前面按格式填補,不足8位用0填補。 2. 非ASCII字符的UNICODE字符轉化成UTF-8將須要至少2個字節。每一個字節由一個換碼序列開始。第一個字節由惟一的換碼序列,由n位連續的1加一位0組成, 首字節連續的1的個數表示字符編碼所需的字節數。 3. UTF-3二、UTF-16和 UTF-8 是 Unicode 標準的編碼字符集的字符編碼方案,UTF-16 使用一個或兩個未分配的 16 位代碼單元的序列對 Unicode 代碼點進行編碼;UTF-32 即將每個 Unicode 代碼點表示爲相同值的 32 位整數。 |
1. 從Unicode 2.0開始,Unicode採用了與ISO 10646-1相同的字庫和字碼。 2. 在未引入輔助平面字符時,UTF-16與UCS-2所指的是同一的意思。對於小於0x10000的UCS碼,UTF-16編碼就等於UCS碼。 3. UTF-16比起UTF-8,好處在於大部分字符都以固定長度的字節 (2字節) 儲存,但UTF-16卻沒法兼容於ASCII編碼。 4. 把Unicode字符集的抽象碼位映射爲16位長的整數(即碼元)的序列,用於數據存儲或傳遞。Unicode字符的碼位,須要1個或者2個16位長的碼元來表示,所以這是一個變長表示。 |
1. Big5字符集共收錄13,053箇中文字,該字符集在中國臺灣使用。 2. 0xA140-0xA3BF爲標點符號、希臘字母及特殊符號。 3. 0xA259-0xA261,存放了雙音節度量衡單位用字:兙兛兞兝兡兣嗧瓩糎。 4. 0xA440-0xC67E爲經常使用漢字,先按筆劃再按部首排序 5. 0xC940-0xF9D5爲次經常使用漢字,亦是先按筆劃再按部首排序。 |