如何将带日文文本的CSV导入PostgreSQL表?

时间:2013-09-06 02:07:02

标签: postgresql character-encoding

我是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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

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

如果您需要帮助,请参阅How to auto detect text file encoding?

正如评论中所说,EUC-JPShift-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';