【PostgreSQL】エラーメッセージの文字化けを直す
WindowsでPostgreSQLを使っていたところ、Railsからこんなエラーが出てきました。。
(´・ω・`)
PGError: ERROR: 蛻・findtime"繧貞梛"timestamp without time zone"縺ォ繧ュ繝」繧ケ繝
どうやらSJISでエラーメッセージを吐いているのに、Rails側はエラーをSJISだと知らずにUTF8だと思って扱うため、文字化けするようです。
簡単な対応は、エラーメッセージを英語化すること。postgresql.confを以下のように編集します。
【変更前】
lc_messages = 'Japanese_Japan.932'【変更後】
lc_messages = 'en_US'
(Ubuntuの場合は'en_US.UTF8'のようです)※変更はPostgreSQLを再起動すると反映されます。
WindowsのPostgreSQL9.0の場合:
【ファイル】
C:\Program Files\PostgreSQL\9.0\data\postgresql.conf
にあります。【再起動方法】
「(マイ)コンピューター」→「管理」→「サービスとアプリケーション」→「サービス」から「posgresql」を探して右クリック→【再起動】
これで文字化けせずエラーメッセージが出るようになりました。( ´∀`)