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 の書いてもすぐに忘れるメモ