3

我是 SQL 的初学者。我想将带有日语文本的 CSV 文件导入 PostgreSQL 表。我创建了一个表并尝试导入 CSV,但此错误退出:

ERROR:  invalid byte sequence for encoding "UTF8": 0x8c
CONTEXT:  COPY tTokyoDir, line 1

********** Error **********

ERROR: invalid byte sequence for encoding "UTF8": 0x8c
SQL state: 22021
Context: COPY tTokyoDir, line 1

任何人都可以帮忙吗?

4

1 回答 1

1

您需要识别 CSV 文件的编码,因为它不是utf-8.

请参阅如何自动检测文本文件编码?如果您需要帮助。

正如评论中所说,EUC-JP并且Shift-JIS是日语的合理编码,两者都受 postgres 支持。

然后指示服务器在导入期间期望该编码。

例如:

SET client_encoding TO 'EUC-JP';
COPY table_name FROM 'file.csv' CSV;
SET client_encoding TO default;

此方法即时转换数据,这是最简单的方法,适用于任何 PostgreSQL 版本。

如果您使用 9.1 或更新的版本,COPY则有一个ENCODING参数使其成为单线:

COPY table_name FROM 'file.csv' CSV ENCODING 'EUC-JP';
于 2013-09-06T14:22:35.967 回答