invalid byte sequence for encoding "UTF8": 0xe99d2c

Query failed: ERROR:  invalid byte sequence for encoding "UTF8": 0xe99d2c

原因是客户端字符集和插入内容的字符集不匹配。PostgreSQL默认不做字符集转换,如果数据库是UTF8的字符集,一般终端的中文字符集会设置为GBK(可以看LANG环境变量确认),所以这个编码不经转换的存入数据库中,而数据库是UTF8的,PostgreSQL发现不是UTF8编码,就报上面的错。

要想打开自动字符集转换功能,必须告诉 pg 客户端使用的字符集。这时可以设置pg客户端编码为GBK,pg就会自动做字符集转换。

下面是实验:

1

[[email protected] ~]# psql -h 192.168.18.210 -Upostgres beiigang

psql.bin (9.3.5, server 9.1.14)

SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)

Type "help" for help.

beiigang=#

2

beiigang=# \l

List of databases

Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

beiigang   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

3

beiigang=# show server_encoding;

server_encoding

-----------------

UTF8

(1 row)

4

beiigang=# show client_encoding;

client_encoding

-----------------

UTF8

(1 row)

5

beiigang=# create table tb_tt (id int, ctnr varchar(60));

CREATE TABLE

6

beiigang=# insert into tb_tt(id,ctnr) values(1,‘新華網‘);

ERROR:  invalid byte sequence for encoding "UTF8": 0xd0c2

7

beiigang=# \encoding GBK

8

beiigang=# show client_encoding;

client_encoding

-----------------

GBK

(1 row)

9

beiigang=# insert into tb_tt(id,ctnr) values(1,‘新華網‘);

INSERT 0 1

10

beiigang=# select * from tb_tt;

id |  ctnr

----+--------

1 | 新華網

(1 row)

11

beiigang=# show client_encoding;

client_encoding

-----------------

GBK

(1 row)

beiigang=#

beiigang=# reset client_encoding;

RESET

beiigang=# show client_encoding;

client_encoding

-----------------

UTF8

(1 row)

写代码时可以根据情况在建立数据库链接时指定客户端字符集编码

参考:

http://www.postgresql.org/docs/9.3/interactive/multibyte.html

-----------------

转载请著明出处:

blog.csdn.net/beiigang

时间: 2024-10-11 19:31:33

invalid byte sequence for encoding "UTF8": 0xe99d2c的相关文章

PostgreSQL copy 时提示:ERROR: invalid byte sequence for encoding "UTF8": 0xb3

测试时使用三种文件格式: ISO-8859 Netpbm PBM image ASCII if [ $(file $filename|grep -c "ISO-8859") -gt 0 ]then echo "ISO-8859" psql -c "copy $schemaname.$tbname from '$dirname/$filename' with(format 'csv', delimiter ', encoding 'ISO-8859-1')&

pentaho中Invalid byte 3 of 3-byte UTF-8 sequence的解决方法

今天在创建数据源的时候报了这么一个错 Invalid byte 3 of 3-byte UTF-8 sequence. 上网一查,说是有中文,字体不相符,可是我没有写中文,为了能继续往后进行,修改了如下文件 在start-pentaho.bat中添加了一句代码 修改前 IF "%BITS%" == "64" ( set CATALINA_OPTS=-Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Dsun.rmi.dgc.clien

Invalid byte 1 of 1-byte UTF-8 sequence(XML读取异常)

XML读取异常Invalid byte 1 of 1-byte UTF-8 sequence. 用xstream进行JavaBean与xml之间的转换,无法设定字符集编码格式,会导致上述异常. 解决方法:org.w3c.dom(java dom)解析xml文档,在此仅列出write方法: 1 public static void write(String xmlFile, String encoding) 2 throws ParserConfigurationException, FileNo

编码问题Invalid byte 3 of 3-byte UTF-8 sequence.

1.Configuration problem: Failed to import bean definitions from URL location [classpath:spring/*Bean.xml] 2.Parsing XML document from file [D:\Program Files (x86)\Tomcat1\webapps\kissflovewebsite \WEB-INF\classes\spring\NormalBean.xml]; nested except

读取xml文件报错:Invalid byte 2 of 2-byte UTF-8 sequence。

程序读取xml文件后,系统报“Invalid byte 2 of 2-byte UTF-8 sequence”错误,如何解决呢? 1.程序解析xml的时候,出现Invalid byte 2 of 2-byte UTF-8 sequence的错误 2.应该是编码出现错误,一般用UE,editplus等工具打开文件.修改完成文件后,保存为UTF-8格式就可以了:或者用UltraEdit打开该xml ,一次 文件-->转换-->ASCII到UTF-8, 再保存,即可. 3.也有可能是文件少了头文件定

[字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案

今天在eclipse中编写pom.xml文件时,注释中的中文被eclipse识别到错误:Invalid byte 1 of 1-byte UTF-8 sequence,曾多次遇到该问题,问题的根源是: The cause of this is a file that is not UTF-8 is being parsed as UTF-8. It is likely that the parser is encountering a byte value in the range FE-FF.

xml中1字节的UTF-8序列的字节1无效([字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案)

今天在eclipse中编写pom.xml文件时,注释中的中文被eclipse识别到错误:Invalid byte 1 of 1-byte UTF-8 sequence,曾多次遇到该问题,问题的根源是: The cause of this is a file that is not UTF-8 is being parsed as UTF-8. It is likely that the parser is encountering a byte value in the range FE-FF.

Invalid byte 3 of 3-byte UTF-8 sequence

用maven编译,tomcat启动时报错:IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence,能确定是编码问题.

错误解决 :Invalid byte 3 of 3-byte UTF-8 sequence.

最近使用ant 多渠道打包  老是编译不成功 提示如下错误 I/O error for /wemicommunity/AndroidManifest.xml: Invalid byte 3 of 3-byte UTF-8 sequence. 网上查了很多资料后 认定是字符编码问题 应该是在其它编码格式文件    直接粘贴到UTF-8 编码格式的项目里 导致了乱码 具体解决办法是 1   使用记事本打开 2    另存为   使用UFT-8 保存 3  打开文件 将错误的编码删除 字符编码问题迎刃