環境
- Windows 7
- psql (PostgreSQL) 9.2.2
- Redshift はローカル環境から接続できるようにセキュリティ設定済み(Security の CIDR/IP に接続元の IP を追加した)
課題になったこと
> psql -h xxx.ap-northeast-1.redshift.amazonaws.com -U username -d dbname -p 5439
psql: FATAL: invalid value for parameter "client_encoding": "SJIS"
上記のようなエラーが出てしまう。
どうやら UTF-8 しか扱ってくれないらしいが、Windows では Postgresql のクライアントエンコーディングの自動判定で常に SJIS と解釈されてしまうらしい。
- Redshift - Ayutaya.com
- Multibyte Character Load Errors - Amazon Redshift
- postgresqlのclient_encodingについて質問
postgresql.conf
で指定するという方法もあるようですが、環境変数に利用するクライアントエンコーディングを指定する事でも解消できた。
set PGCLIENTENCODING=UTF8
もちろん環境変数として永続的に設定しておいても大丈夫です。