• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

用delphi生成GBK中文编码表(4~5)GBK/4~5:0xAA40~0xFEA0(部分)扩充汉字包括繁体0xA ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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(部分) 扩充非汉字



procedure Tfm_Words.Button5Click(Sender: TObject);
var
  A, B: Cardinal;
  I, J: Integer;
  sHex: 
string;
  s1: WideString;
  ss: 
string;
begin
//
GBK/5: 0xA840~0xA995(部分) 扩充非汉字
  ss :
= #13#10+
        
'                GBK/5: $A840~$A996(部分) 扩充非汉字                '#13#10+
        
'                                           jfyes 2008-07-07'#13#10#13#10;

  
for  I:=  $A8 to $A9 do
  
begin

     
for J := $40 to $96 do
     
begin

       sHex :
= Format('$%.2x%.2x', [I, J]);
       A :
= SysUtils.StrToIntDef(sHex, 0);
       
       
if J = $40 then
         ss :
= ss+ 'code  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F ';


       
if J in [$40, $50,$60, $70, $80,$90, $A0, $B0, $C0, $D0, $E0, $F0] then
         ss :
= ss + #13#10 + sHex+ #32;

       
if J <> $7F then
         ss :
= ss + Char(I) + Char(J) + #32
       
else ss := ss + #32#32#32


     
end;
     ss :
= ss + #13#10#13#10;
  
end;
self.memo1.lines.add(ss, True);
end;  

执行结果如下:
------------------------------------------------------------------------------
                GBK/5: $A840~$A996(部分) 扩充非汉字                
                              
code  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 
$A840 ˊ ˋ ˙ – ― ‥ ‵ ℅ ℉ ↖ ↗ ↘ ↙ ∕ ∟ ∣ 
$A850 ≒ ≦ ≧ ⊿ ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ 
$A860 ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ 
$A870 ╬ ╭ ╮ ╯ ╰ ╱ ╲ ╳ ▁ ▂ ▃ ▄ ▅ ▆ ▇    
$A880 █ ▉ ▊ ▋ ▌ ▍ ▎ ▏ ▓ ▔ ▕ ▼ ▽ ◢ ◣ ◤ 
$A890 ◥ ☉ ⊕ 〒 〝 〞  

code  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 
$A940 〡 〢 〣 〤 〥 〦 〧 〨 〩 ㊣ ㎎ ㎏ ㎜ ㎝ ㎞ ㎡ 
$A950 ㏄ ㏎ ㏑ ㏒ ㏕ ︰ ¬ ¦  ℡ ㈱  ‐    
$A960 ー ゛ ゜ ヽ ヾ 〆 ゝ ゞ ﹉ ﹊ ﹋ ﹌ ﹍ ﹎ ﹏ ﹐ 
$A970 ﹑ ﹒ ﹔ ﹕ ﹖ ﹗ ﹙ ﹚ ﹛ ﹜ ﹝ ﹞ ﹟ ﹠ ﹡    
$A980 ﹢ ﹣ ﹤ ﹥ ﹦ ﹨ ﹩ ﹪ ﹫        
$A990       〇 



procedure Tfm_Words.Button4Click(Sender: TObject);
var
  A, B: Cardinal;
  I, J: Integer;
  sHex: 
string;
  s1: WideString;
  ss: 
string;
begin   //GBK/4: 0xAA40~0xFEA0(部分) 扩充汉字 包括繁体
  ss :
= #13#10+
        
'                GBK/4: $AA40~$FEA0(部分) 扩充汉字全表                '#13#10+
        
'                                           jfyes 2008-07-07'#13#10#13#10;

  
for  I:=  $AA to $FE do
  
begin

     
for J := $40 to $A0 do
     
begin

       sHex :
= Format('$%.2x%.2x', [I, J]);
       A :
= SysUtils.StrToIntDef(sHex, 0);
       
       
if J = $40 then
         ss :
= ss+ 'code  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F ';


       
if J in [$40, $50,$60, $70, $80,$90, $A0, $B0, $C0, $D0, $E0, $F0] then
         ss :
= ss + #13#10 + sHex+ #32;

       
if J <> $7F then
         ss :
= ss + Char(I) + Char(J) + #32
       
else ss := ss + #32#32#32


     
end;
     ss :
= ss + #13#10#13#10;
  
end;

self.memo1.lines.add(ss, True);
end;
执行结果如下:
------------------------------------------------------------

                GBK/4: $AA40~$FEA0(部分) 扩充汉字全表  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi读写ini配置文件示例发布时间:2022-07-18
下一篇:
delphi去除右边指定字符发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap