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 に答える