DB エンコーディングが UTF-8 の PostgreSQL に dplyr でアクセスしたら、Windows では日本語が文字化けする。
対処法としては postgresql.conf
を編集して、client_encoding = sjis
とする方法がある。
$ sudo vi /var/lib/pgsql9/data/postgresql.conf
ただし、これでは今度は Linux からアクセスしたときに文字化けしてしまう。
そこで、両方のマシンからアクセスしたいような場合は、client_encoding
はデフォルトのまま、以下を Windows の環境変数に追加する。(参考:Windows 環境変数 Path の設定方法)
変数
PGCLIENTENCODING
値
sjis
これで大丈夫なはず。
クライアント(RStudioなど)を再起動してデータ取得してみてください。
LGTM 待ってます。
追記:DBエンコーディングの確認
$ psql -U postgres
postgres=# \l
結果
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------------+----------------+----------+-------------+-------------+-----------------------
**************-db | ************** | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
参考
- Why are you using SJIS ?
- [PDF] PostgreSQLの搭載機能 自動エンコーディング変換の使い方
- PostgreSQL: Documentation: 9.2: Environment Variables