我数据库里面的字段定义是 char(4)
里面存放两个汉字,
为什么用getString取出来的时候,都自动加了两个空格呢?
比如
数据库里面:你好
getString之后的结果:你好□□ (□:空格)

解决方案 »

  1.   

    char(4)的话,如果字符不足4位会自动填充为4位,是定长数据
    应该是这样
    你换成varchar 应该就不会了
      

  2.   

    把数据的这个字段修改下从char(4) 修改成varcha2(4)就应该可以解决你所说的问题了。
    和一楼 “aoxianglin ”观点一致
      

  3.   

    得到结果 之后 调用 trim()(String中的方法) 去掉空格
      

  4.   

    是这样的.现在的现象是开发机和测试机同样的代码
    但是开发机上面用getstring取出来的数据后面没有空格
    是不是和jdbc的驱动有关系?
      

  5.   

    [Quote=引用 10 楼 java2000_net 的回复:]
    一句话,如果啥都不让改,那么你辞职吧。
    [/Quote
    我也有这个打算了,
    不过辞职之前先弄明白这个问题....难道jdbc驱动的版本不同,处理的结果也不一样马?
    在什么情况下,getString取出来的char数据的长度是
    按照字节数算得。什么情况下是按照文字数算得。
      

  6.   

    trim一下去掉空格就可以了,原因二楼说的很明白
      

  7.   

    數據庫不讓改的話  那就在後面就java代碼處理下就可以了
    在取得數據後trim()就可以了   這個方法是專門去掉空格的
      

  8.   

    数据结构都是一样的。但是oracle的版本不一样。
      

  9.   

    解决办法很多啊。。有简单的有复杂的
    上面就总结了两种办法。
    还可以用String方法中的spint()方法以截取字符串形式实现,取值的时候截取字符串的前两位就可以了,只把汉字截取出来现实就OK了。
      

  10.   

    9i里面我确认char类型肯定是会自动补齐空格的,你说测试环境和生产环境测试结果不一致,我提一个很白痴的假设,不知道你是不是这样的情况:
    比如数据长度是char(4),测试的时候测试人员是输入的4个字符,生产的时候输入的是2个,所以发现空格了?不知道是不是这样的原因。
    至于标准解释参见2楼,是这个问题的解答!
      

  11.   

    在windows下面都没有问题,
    在unix下面有问题,就是说unix下面会自动在char(4)的数据后面补空格