好像8.0是有这个问题,当为UNICODE编码,locale为c,设置了client_encoding,好像如果是偶数个汉字就不会出错,应该是多字节处理的有问题。不过对汉字用upper()没多大意义。我主要用的都是7.4.2的,很稳定,不存在这个问题。

解决方案 »

  1.   

    哦,我用的是8.0的,用的时候是默认设置,好像就是unicode,c,不过也没有去可以去设置什么 client_encoding了,主要不是想用 upper() 转换汉字,是某一个列有汉字和英文,某些情况下可能需要用 UPPER(field1) = 'A%' 之类的条件,这样它就报出错了。
    那是不是有什么设置可以修正它?
      

  2.   

    我的没问题呀,我用的是SQL_ASCII
      

  3.   

    这个修正方法我不清楚,网上是有说用SQL_ASCII编码是正常的,但改变编码又不现实,实际的系统一般还是UNICODE比较好,其他解决方法不清楚,我一直用的7.4.2版本,比较好用的