建议你好好看看这篇文档,也许对你有帮助!
*******************************************************************************
作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com写于:2002/07 最后更新: 06/08/2004 13:05:07 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.chedong.com/tech/hello_unicode.html*******************************************************************************

解决方案 »

  1.   

    byte[] b=a.getBytes("GBK");
    b[0]=(byte)((b[0] & 0x7f)-32);
    b[1]=(byte)((b[1]&0x7f)-32);把汉字的两个字节的首位置成0(-128)然后减去32就可以了。
    也就是说,直接减160就行.如果首位本来就是零呢?所以你的做法有问题。算法我不清楚,上面程序是按你说的算法修改的。
      

  2.   

    这个算法网上很多地方都有!而且很多区位软件得出"丏"就是-31区码,-92位码;但这个区位码更本不存在;见  http://www.sinolab.com/bbs/sdc_inputcn_tools.php?action=tool1