我正在努力从我的表中转换编码错误的数据。例如,我有一个字段Nadège
应该是Nadège
.
我尝试使用 Postgres 的函数convert
, convert_from
,convert_to
但没有取得多大成功。
db=# SHOW client_encoding;
client_encoding
-----------------
UTF8
(1 row)
db=# SHOW server_encoding;
server_encoding
-----------------
UTF8
(1 row)
db=# SELECT "firstName", encode("firstName"::bytea, 'hex') FROM contact;
firstName | encode
-----------+--------------------
Nadège | 4e6164c3a86765
Nadège | 4e6164c383c2a86765
(2 rows)
db=# SELECT "firstName", convert_from("firstName"::bytea, 'latin1') FROM contact WHERE "lastName" ILIKE 'crochard';
firstName | convert_from
-----------+----------------
Nadège | Nadège
Nadège | NadÃ\u0083¨ge
(2 rows)
db=# SELECT "firstName", convert("firstName"::bytea, 'utf8', 'latin1') FROM contact;
firstName | convert
-----------+------------------
Nadège | \x4e6164e86765
Nadège | \x4e6164c3a86765
(2 rows)
使用 python 我可以得到正确的编码:
data.encode('latin1').decode('utf8')
关于如何在 postgres 中转换这些错误编码的数据的任何提示?