插入数据(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
个人倾向“方法一".
阅读(4138) | 评论(0) | 转发(0) |