你要改数据库编码,改EUC_CN么,这个小字符集不能处理一些生僻字的。转换编码要把原来的数据库倒出来然后恢复到新编码的数据库中。可以:pg_dump (-D) olddb>bak.out,(-D倒成insert语句)
建新库:createdb -E EUC_CN newdb
然后psql -d newdb -f bak.out  恢复数据(如果数据库中没大对象的话这样没问题,有的话要二进制归档)。恢复数据的时候如果原库中有生僻字不能完全恢复的,一般的汉字是没问题

解决方案 »

  1.   

    我也正想问这个,
    我也是UNICODE编码数据库,在php里面显示总是乱码,程序里面每个页面都需要发出一个"set Client_encoding to 'euc_cn'“才能显示中文。我发现好像使用直接使用euc_cn编码数据库就不用这个步骤了吧?
    我用随风的方法遇到一个问题,
    pg_dump (-D) olddb>bak.out 这里中文倒成insert语句的文件时候里中文就变成乱码了。恢复到新的数据库也就还是乱码。