打印本文 打印本文 关闭窗口 关闭窗口
使用CHAR函数实现汉字与区位码之间的相互转换
作者:武汉SEO闵涛  文章来源:敏韬学习网  点击数4823  更新时间:2010/6/21 21:53:35  文章录入:mintao  责任编辑:mintao

  怎样用函数计算汉字的区位码,比如a1=吴,b1用公式得4666。

  反之已知区位码,怎样得汉字。

  区位码是与汉字一一对应的编码,用四位数字表示,前两位从01到94称区码,后两位从01到94称位码。 一个汉字的前一半是 ASCⅡ码为“160+区码”的字符,后一半是ASCⅡ码为“160+ 位码”的字符。每区256字。

  如:A1=4666    (INT(A1/100)+160)*256或(LEFT(A1,2)+160)*256 就是所在区以前的ANSI字符集字符的数,MOD(B1,100)+160或RIGHT(A1,2)+160要查区位码在本区ANSI字符集的位置。两者相加为要查值的汉字编码。CHAR函数处理就得到汉字了。所以公式为=CHAR((LEFT(A1,2)+160)*256+RIGHT(A1,2)+160)或=CHAR((INT(A1/100)+160)*256+MOD(A1,100)+160),返回“吴”。

  现在看看反函数

  A1为吴   (INT(CODE(A1)/256)-160)就是所在的区,MOD(CODE(A1),256)-160就是要查汉字所在区的位,区码*100+位码就是区位码,又因为区位码是固定4位,所以公式为=TEXT((INT(CODE(A1)/256)-160)*100+MOD(CODE(A1),256)-160,"0000"),返回“4666”。

打印本文 打印本文 关闭窗口 关闭窗口