コマンドラインのPostgreSQL操作でcharacter with byte sequence XXXが出たときの対応
こんにちは、ピコピコくんです!
PostgreSQLをWindowsのコマンドプロンプト上で使ったときに遭遇したトラブルについて書いたよ。
現象
WindowsのコマンドプロンプトからPostgreSQLにログインして、\o コマンドで検索結果をファイル出力しようとしたら下記エラーが発生。
DB=# \o aaa.txt
DB=# select * from table1;
ERROR: character with byte sequence 0xe3 0x83 0x87 in encoding "UTF8" has no equivalent in encoding "WIN1252"
UTF8の0xe3, 0x83, 0x87のbyte値はWIN1252に存在しないらしい。なるほど。
ということは文字エンコードをUTF8に変更すれば直るのでは?
対応
同様のエラーを調べたら出てきました。そこに文字エンコードを変更する方法も書いてありました。postgresqlにログインして下記コマンドを実行すると文字エンコードをUTF-8に変更することができます。
set client_encoding TO 'UTF8';
文字エンコードを変更して検索結果をファイル出力するコマンドを実行したら、正常にファイルが出力されました。今回は10分程度で解決できたよ。ラッキー!(*´ω`*)