关于汉字编码

一次偶然的机会,使用PL/SQL Developer将编辑区的语句全选,粘贴到Word中保存后,当时没注意,后来发现,中文都变成乱码了
比如:出现了bb,搞不清楚当时是哪四个汉字了.
所以,对汉字编码进行了点探索.以便将汉字还原出来.

学生时代,在考试前填写一些报名表时,往往需要将姓名以区位码的方式铅笔填涂.当时由于好奇,也曾经对汉字编码进行过一点探索.
国标区位码表(GB2312-80),共设置94个区,每个区94个位.(所以称为区位码).一共7445个字符,其中汉字6763个.
第1-9区是符号部分,从16区开始是汉字部分,汉字部分按汉字是否常用分为上下两个区域,第16-55区是上半区域,汉字按拼音排序,共3755个,
第56-87区是下半区域,汉字按部首(笔画笔形)排序,共3008个.

比如,"荣"位于40区57位,所以区位码是4057,(2839 H)
国标码是指,区位码区码位码分别加上32(换成十六进制就是20H)并转换成十六进制的结果,"荣"的国标码是:4859 H
汉字内码是指,国标码高字节和低字节分别加上128(十六进制80H),也就是区位码高字节和低字节分别加上160(十六进制A0)."荣"的机器内码是:C8D9 H

可以使用Excel编公式,用函数CODE和CHAR来进行字符和内码的转换,比如:
=CODE("荣")的结果为: 51417  注: 51417=200*256+217, 200对应C8,217对应D9
=CHAR(51417)的结果为: 荣

现在回到bb这8个乱码上来,根据出现的这几个字符来核对,确认了一下,是被转换成拉丁字符(ISO Latin-1)了,知道了这点,问题就好办了.
按照拉丁字符对照表,得到: 178,187,205,172,201,232,214,195
从而得到四个汉字的内码: 45755,52652,51688,54979
从而得到四个汉字是:“不同设置”

另外,GBK编码是国标扩展编码之意,共收录汉字21003个(包含GB2312-80的6763个),这样使得姓名上面出现的罕见汉字,也可以输入计算机系统了。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29512902/viewspace-1181279/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29512902/viewspace-1181279/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值