[Delphi] 經常使用字符集簡介

轉載html

http://www.cnblogs.com/yangyxd/articles/4778483.html

字符集

ANSI (ASCII)
美國信息互換標準編碼ide

GB 2312
信息交換用漢字編碼字符集編碼

GBK
Chinese Internal Code Specificationcode

GB18030
信息交換用漢字編碼字符集基本集的擴充

UTF-8
萬國碼htm

UTF-16
(ISO/IEC 10646-一、UCS-2) 
通用字符集blog

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碼的相應碼)。

雙字節字符
首字節碼從0x81至0xFE,尾字節碼位分別是0x40至0x7E和0x80至0xFE。

四字節字符:
採用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爲次經常使用漢字,亦是先按筆劃再按部首排序。
相關文章
相關標籤/搜索