invalid byte sequence for encoding "UTF8": 0xe99d2c
来源:互联网 发布:手机游戏源码架设教程 编辑:程序博客网 时间:2024/04/28 13:52
Query failed: ERROR: invalid byte sequence for encoding "UTF8": 0xe99d2c
原因是客户端字符集和插入内容的字符集不匹配。PostgreSQL默认不做字符集转换,如果数据库是UTF8的字符集,一般终端的中文字符集会设置为GBK(可以看LANG环境变量确认),所以这个编码不经转换的存入数据库中,而数据库是UTF8的,PostgreSQL发现不是UTF8编码,就报上面的错。
要想打开自动字符集转换功能,必须告诉 pg 客户端使用的字符集。这时可以设置pg客户端编码为GBK,pg就会自动做字符集转换。
下面是实验:
1
[root@hostalonetest ~]# 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
0 0
- invalid byte sequence for encoding "UTF8": 0xe99d2c
- ERROR:invalid byte sequence for encoding"UTF8"
- ERROR: invalid byte sequence for encoding "UTF8": 0x92
- ERROR: invalid byte sequence for encoding "UTF8": 0xd5 0xc5
- PostgreSQL: DECLARE CURSOR failed: ERROR: invalid byte sequence for encoding "UTF8": 0xc9e3
- unmappable character for encoding UTF8
- Convert.ToBase64String(Byte[])和Encoding.UTF8.GetString(Byte[])
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xb1 in position 0: invalid start byte
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xd4 in position 0: invalid continuation byte
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xd1 in position 0: invalid continuation byte问题
- read_csv UnicodeDecodeError: 'utf8' codec can't decode byte 0xb1 in position 0: invalid start byte
- [python] UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 59: invalid start byte
- About UnicodeDecodeError: 'utf8' codec can't decode byte 0xa1 in position 157: invalid start byte
- 'utf8' codec can't decode byte 0x8b in position 14: invalid start byte
- UnicodeDecodeError: 'utf8' codec can't decode byte 0xd5 in position 8: invalid c ontinuation byte
- UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 : invalid start byte
- pythonUnicodeDecodeError: 'utf8' codec can't decode byte 0xba in position 208550: invalid start byte
- IBM 技术文档:Spark, 快速数据分析的又一选择
- C++基础三剑客—复制构造函数,赋值操作,析构函数
- cat
- 移动MM 支付SDK遇到的问题
- 分枝和合并基础知识介绍
- invalid byte sequence for encoding "UTF8": 0xe99d2c
- 凯福德金业(香港)荣获“最佳贵金属交易平台”大奖
- NFS 文件系统
- yum常用命令的使用方法
- 无法删除数据库 "aaa",因为该数据库当前正在使用
- cut
- DEDEcms图片附件上传到又拍云使用云存储
- 通过简单的Word Count讲解MapReduce原理以及Java实现
- Socket通讯及底层TCP/IP连接原语