现在有数据插入的sql脚本,其中的中文全部采用utf8的编码,类似INSERT INTO ORDERS VALUES(1,0,'2006-01-27',470.4,NULL,NULL,'\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7','2006-02-01','2'),但是执行该语句后,数据中的相应字段的数据还是类似\u5e7f\u5dde\u5e02\u5317\u4eac\u8def39\u53f7 这种,我希望能够正常显示中文,请问该如何处理?数据库为postgresql 8.1

解决方案 »

  1.   

    直接输汉字不行吗?如果要用内码直接存入,我知道在8。3有个函数为convert_from
    convert_from(string bytea, src_encoding name)
    说明如下:
    Convert string to the database encoding. The original encoding is specified by src_encoding. The string must be valid in this encoding. 而bytea输入是八进制格式 如'巴', UTF8内码为E5B7B4 八进制格式为\345\267\264
    所以 convert_from(E'\\345\\267\\264','utf8')将返回一个'巴'字1,你的内码可能是UCS2码,不是真正的UTF8码,如果是这样,你是无法转换的,因为PG的encoding中没有UCS2
    2.如果是真正的UTF8玛,你的内码必须先转换为八进制.
      

  2.   

    数据库安装时的编码格式选择的是不是UTF-8.如果装的时候不是选UTF-8.好象数据会被数据库格式成安装时的类型.