サーバ、クライアントの文字コード

EUC のデータを UTF8 のデータベースにインポート 時にエラー

ERROR: character 0xfbda of encoding "EUC_JP" has no equivalent in "UTF8"

神奈備日記 |postgreSQL の文字変換マップをカスタマイズ

ERROR: character 0xfce2 of encoding "EUC_JP" has no equivalent in "UTF8"
...
PostgreSQL では内部に文字変換テーブルを持っているようだが、Windows CP932でいう「漢字3」、0xFA40〜0xFC4B 周辺の文字は各エンコード間で混乱しているため、あえて登録していないようだ。

上記ページは変換マップをカスタマイズしているが、簡易に iconv で強制変換

$ iconv -f EUC-JP -t UTF-8 -c euc_data.sql > utf8_data.sql

-c は 無効な文字を無視して無視して続行

SQL文中で client_encoding をしている場合は変更

$ vi utf8_data.sql

SET client_encoding = 'EUC_JP';
↓
SET client_encoding = 'UTF8';

ERROR: character 0xf9f5 of encoding "EUC_JP" has no equivalent in "UTF8" - sirocco の書いてもすぐに忘れるメモ