gpt4 book ai didi

linux - 错误 : invalid byte sequence for encoding "UTF8"

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:38 25 4
gpt4 key购买 nike

我看了类似的问题,但仍然没有找到合适的解决方案。

在我的 Ubuntu 操作系统上,我通过以下方式创建了一些数据库:

createdb PADB -W

并创建了一个表。

create table teacher(
id_teacher integer PRIMARY KEY,
name varchar(120),
experience integer
);

NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "teacher_pkey" for table "teacher"

我想添加一些包含西里尔字母的数据,但出现此错误:

PADB=# insert into teacher (name, experience) values ("Пупкин Василий Иванович", 15);
ERROR: invalid byte sequence for encoding "UTF8": 0xd0d0

这是我的 lc 设置:

PADB=# select name, setting from pg_settings where name like 'lc_%';
name | setting
-------------+-------------
lc_collate | ru_RU.UTF-8
lc_ctype | ru_RU.UTF-8
lc_messages | ru_RU.UTF-8
lc_monetary | ru_RU.UTF-8
lc_numeric | ru_RU.UTF-8
lc_time | ru_RU.UTF-8
(6 rows)

怎么了?

PostgreSQL 9.1.11

最佳答案

我怀疑您的客户端应用程序实际上是以 koi8-riso-8859-5 编码发送数据,而不是 utf-8,但是您的 client_encoding 告诉 PostgreSQL 需要 UTF-8。

要么将输入数据转换为 utf-8,要么更改您的 client_encoding 以匹配输入数据。

用不同的编码解码你的数据会产生:

>>> print "\xd0\xd0".decode("utf-8")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation byte

>>> print "\xd0\xd0".decode("koi8-r")
пп

>>> print "\xd0\xd0".decode("iso-8859-5")
аа

然而,奇怪的是,您的输入似乎不包含任何这些。我有点困惑什么编码会将 Пупкин Василий Иванович 转换为字节序列 \xd0\xd0。所以这还没有完全解释清楚。事实上,我找不到生成该字节序列的 Пупкин Василий Иванович任何编码,所以我想知道是否存在双重编码或类似的重组.我需要更多地了解您的环境才能说得更多;查看对原始问题的评论。

关于linux - 错误 : invalid byte sequence for encoding "UTF8",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22435919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com