字符集问题

扫码查看
  插入数据(insert into)的时候会碰到提示“Error:invalid byte sequence for encoding "UTF8":0xd6d0”的错误。

  原因:没有正确设置终端字符集。输入中文时就会报以上错误。

       默认情况下,PostgreSQL是不转换字符集的,一般终端的中文字符集会设置成GBK,或者en_US(查看终端的字符集,可以从LANG环境变量的设置中看到。)
       一般都是GBK编码,这个编码不经转换的存入数据库,而数据库是UTF8的,PostgreSQL一看就没有这样的编码,当然报错了!


  解决方法:

      一、设置psql客户端的字符集为GBK,这时PostgreSQL知道输入的内容是GBK编码的了,这样数据库会做自动的字符集转换,转换为UTF8.

      二、直接设置终端的字符集编码为UTF8,而不是GBK。

  具体步骤:


      一、 1.show client_encoding;
          2.\encoding GBK
          3.执行步骤1,验证;
          4.export PGCLIENT ENCODING =GBK
 
      二、 1.export  LANG=zh_CN.UTF8
          2.将所使用的终端软件设置成UTF

个人倾向“方法一".
11-09 11:15
查看更多