中文是当然占用了两个字节的,这个没有办法
但是你可以str.getBytes().length;这样来判断出这个字符串转换以后的长度,其中的中文为占用两个byte的
但是你说的问题我认为你使用的字段类型或者连接jdbc有问题,实际上不应该存在"然后再存的时候会在后面加一个空格"这回事的,我存进去是'ab我'就是这个而不会增加成'ab我 ' 的

解决方案 »

  1.   

    是不是你的页面编码与数据库编码的问题。对eng编码之间不存在问题,但是对chi就不同那。自己要注意一下编码存储!
      

  2.   

    我采用牺牲效率和空间的办法处理,一律采用varchar,就不存在这个鸟问题了。
      

  3.   

    java里默认的是unicode,你可以用byte[]数组试试。然后判断某个元素的值是否是负数(汉字的高位玛和低位码都是复数),再作处理。我原来写过一个从文本里删除汉字的东西,判断就是这样判断的。Java你可以试试。
      

  4.   

    从数据库到JSP页面,只会出现中文乱码,怎么会多空隔。
      

  5.   

    数据库中的一个字段为char(4)=======>最好改成Varchar
    这样就不会自动加空格了
      

  6.   

    我决得你应该用varchar,这样比较好
    再java中,如果你要得到字符串的长度,你最好是这样str.getBytes().length。这样的长度才是真正的长度