但是对于中文字符的长度应该是4还是2呀?对于文本编辑器应该一列就是一个字符的长度呀?我不知道这个应该怎么处理,因为我要生成一个报文,报文中对这个数据项的长度规定的,比如说数据项长度是30,但是允许可以有中文字符出现,不足的就用空格补空,就以“你好”两个字为例,那么按照Java语言中的length计算长度为2,那么我就要在“你好”后面补28个空格,这样就有这个字符串就占32列,而不是30列,这个到底是怎么计算的,我有点郁闷了,是不是Java计算中文字符的长度和实际的不等呀,按照常理一个汉字占2个字节呀
 请各位老师帮我指点一下呀!

解决方案 »

  1.   

    SQL SERVER 2000里面也有同样的问题,在SQL SERVER2000中定义字符串时,若输入为汉字,则求其长度时也只能是一个汉字就一位。谁要是 知道的话,烦劳转告!!!
      

  2.   

    本身汉字就占两个字节的.
    在JAVA中leng()只是能取得字的个数,并不能计算出字节长度.
      

  3.   

    java程序是unicode的,按照unicode计算当然是2个字符
    记事本是windows的,默认本地编码方式GBK,当然是4个字符
    这是2回事
      

  4.   

    java中string的length()取出来的是字符长度而不是字节长度
    中文一个字符是占两个字节的一个英文字母占一个字节
    所以如果 有字符串tmpString = "中国acb"
    则tempString.length()的结果是5如果你想要得到一个string的字节长
    你可以这样用tempString.getByes().length
    这样得到的值就是字节长度7
      

  5.   

    mandm(馒头):
      谢谢你的指点,就是这个问题,我取成字符的长度了,应该用string.getbytes().length取字节的长度,这样才正确,谢谢!