用delphi生成GBK 中文编码 表(4~5) GBK/4~5: 0xAA40~0xFEA0(部分) 扩充汉字 包括繁体 0xA
http://www.cnblogs.com/jfyes/archive/2009/09/24/1573638.html
GBK 中文编码: (* GBK是GB2312的扩展,是向上兼容的,因此GB2312中的汉字的编码与GBK中汉字的相同。
GBK中每个汉字仍然包含两个字节, 第一个字节的范围是0x81-0xFE(即129-254),第二个字节的范围是0x40-0xFE
(即64-254)。GBK中有码位23940个, 包含汉字21003个。
--------------------------------------
GBK/1: 0xA1A0~0xA9EF(部分) GB2312非汉字符号
GBK/2: 0xB0A0~0xF7FE(部分) GB2312汉字
上面两个是GB2312的扩展,是向上兼容的;
--------------------------------------------------------------
GBK/3: 0x8140~0xA0FE(部分) 扩充汉字 包括繁体 ---->
GBK/4: 0xAA40~0xFEA0(部分) 扩充汉字 包括繁体
GBK/5: 0xA840~0xA995(部分) 扩充非汉字
1 procedure Tfm_Words.Button5Click(Sender: TObject); 2 var 3 A, B: Cardinal; 4 I, J: Integer; 5 sHex: string; 6 s1: WideString; 7 ss: string; 8 begin 9 //GBK/5: 0xA840~0xA995(部分) 扩充非汉字 10 ss := #13#10+ 11 ' GBK/5: $A840~$A996(部分) 扩充非汉字 '#13#10+ 12 ' jfyes 2008-07-07'#13#10#13#10; 13 14 for I:= $A8 to $A9 do 15 begin 16 17 for J := $40 to $96 do 18 begin 19 20 sHex := Format('$%.2x%.2x', [I, J]); 21 A := SysUtils.StrToIntDef(sHex, 0); 22 23 if J = $40 then 24 ss := ss+ 'code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F '; 25 26 27 if J in [$40, $50,$60, $70, $80,$90, $A0, $B0, $C0, $D0, $E0, $F0] then 28 ss := ss + #13#10 + sHex+ #32; 29 30 if J <> $7F then 31 ss := ss + Char(I) + Char(J) + #32 32 else ss := ss + #32#32#32 33 34 35 end; 36 ss := ss + #13#10#13#10; 37 end; 38 self.memo1.lines.add(ss, True); 39 end; 40 41 执行结果如下: 42 ------------------------------------------------------------------------------ 43 GBK/5: $A840~$A996(部分) 扩充非汉字 44 45 code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 46 $A840 ˊ ˋ ˙ – ― ‥ ‵ ℅ ℉ ↖ ↗ ↘ ↙ ∕ ∟ ∣ 47 $A850 ≒ ≦ ≧ ⊿ ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ 48 $A860 ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ 49 $A870 ╬ ╭ ╮ ╯ ╰ ╱ ╲ ╳ ▁ ▂ ▃ ▄ ▅ ▆ ▇ 50 $A880 █ ▉ ▊ ▋ ▌ ▍ ▎ ▏ ▓ ▔ ▕ ▼ ▽ ◢ ◣ ◤ 51 $A890 ◥ ☉ ⊕ 〒 〝 〞 52 53 code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 54 $A940 〡 〢 〣 〤 〥 〦 〧 〨 〩 ㊣ ㎎ ㎏ ㎜ ㎝ ㎞ ㎡ 55 $A950 ㏄ ㏎ ㏑ ㏒ ㏕ ︰ ¬ ¦ ℡ ㈱ ‐ 56 $A960 ー ゛ ゜ ヽ ヾ 〆 ゝ ゞ ﹉ ﹊ ﹋ ﹌ ﹍ ﹎ ﹏ ﹐ 57 $A970 ﹑ ﹒ ﹔ ﹕ ﹖ ﹗ ﹙ ﹚ ﹛ ﹜ ﹝ ﹞ ﹟ ﹠ ﹡ 58 $A980 ﹢ ﹣ ﹤ ﹥ ﹦ ﹨ ﹩ ﹪ ﹫ 59 $A990 〇 60 61 62 63 procedure Tfm_Words.Button4Click(Sender: TObject); 64 var 65 A, B: Cardinal; 66 I, J: Integer; 67 sHex: string; 68 s1: WideString; 69 ss: string; 70 begin //GBK/4: 0xAA40~0xFEA0(部分) 扩充汉字 包括繁体 71 ss := #13#10+ 72 ' GBK/4: $AA40~$FEA0(部分) 扩充汉字全表 '#13#10+ 73 ' jfyes 2008-07-07'#13#10#13#10; 74 75 for I:= $AA to $FE do 76 begin 77 78 for J := $40 to $A0 do 79 begin 80 81 sHex := Format('$%.2x%.2x', [I, J]); 82 A := SysUtils.StrToIntDef(sHex, 0); 83 84 if J = $40 then 85 ss := ss+ 'code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F '; 86 87 88 if J in [$40, $50,$60, $70, $80,$90, $A0, $B0, $C0, $D0, $E0, $F0] then 89 ss := ss + #13#10 + sHex+ #32; 90 91 if J <> $7F then 92 ss := ss + Char(I) + Char(J) + #32 93 else ss := ss + #32#32#32 94 95 96 end; 97 ss := ss + #13#10#13#10; 98 end; 99 100 self.memo1.lines.add(ss, True); 101 end; 102 执行结果如下: 103 ------------------------------------------------------------ 104 105 GBK/4: $AA40~$FEA0(部分) 扩充汉字全表