lightdb for postgresql ERROR: invalid byte sequence for encoding "UTF8": 0xc92c解决方法

ltsql执行sql文件时报ERROR:  invalid byte sequence for encoding "UTF8": 0xc92c。原因是文件的编码和当前用户环境的编码不一致。

通过010 Editor可以查看编码格式,file命令不一定可以。

 这确实是编码的问题,可以通过修改环境变量或client_encodinghttps://www.feiqueyun.cn/zixun/jishu/193249.html解决。

 https://stackoverflow.com/questions/4867272/invalid-byte-sequence-for-encoding-utf8

但是下面的情况比较复杂,必须确保客户端和服务端编码完全一致:

zjh@zjhdb=# show %encoding%;
name | setting | description
-----------------+---------+----------------------------------------------------
client_encoding | UTF8 | Sets the client's character set encoding.
server_encoding | UTF8 | Sets the server (database) character set encoding.
(2 rows)

zjh@zjhdb=# create table t(t text);
CREATE TABLE
zjh@zjhdb=# insert into t values('中国');
INSERT 0 1
zjh@zjhdb=# exit
[zjh@hs-10-20-30-193 ~]$ echo $LANG
en_US.UTF-8
[zjh@hs-10-20-30-193 ~]$ export LANG=zh_CN.GBK
[zjh@hs-10-20-30-193 ~]$ echo $LANG
zh_CN.GBK
[zjh@hs-10-20-30-193 ~]$ ltsql -p25432 zjhdb
ltsql (13.8-22.3)
Type "help" for help.

zjh@zjhdb=# insert into t values('中国');
ERROR:  character with byte sequence 0xad 0xe5 in encoding "GBK" has no equivalent in encoding "UTF8"
zjh@zjhdb=# show %encoding%;
      name       | setting |                    description                     
-----------------+---------+----------------------------------------------------
 client_encoding | GBK     | Sets the client's character set encoding.
 server_encoding | UTF8    | Sets the server (database) character set encoding.
(2 rows)

zjh@zjhdb=# exit
[zjh@hs-10-20-30-193 ~]$ export LANG=zh_CN.GB2312
[zjh@hs-10-20-30-193 ~]$ ltsql -p25432 zjhdb
ltsql (13.8-22.3)
Type "help" for help.

zjh@zjhdb=# insert into t values('中国');
ERROR:  character with byte sequence 0xad 0xe5 in encoding "EUC_CN" has no equivalent in encoding "UTF8"

 

posted @ 2021-11-09 16:43  zhjh256  阅读(605)  评论(0编辑  收藏  举报