以下を参考にPostgreSQLのロケールをUTF-8からロケールなしに変更。
UbuntuはベースがUTF-8なので、EUC-JPのデータベースでソートがおかしくなったりする問題が出てくる模様。
(参考URL)
http://d.hatena.ne.jp/pasela/20080909/postgres
コンソールからロケールja_JP.eucJPに変更して日本語のデータを入れようとした文字が入らない。コンソール上では日本語部分が文字化けになっている。
pg_controlldataコマンドで見るとロケールはCになっているのになぜ?
ちなみにUbuntu8.10でPostgreSQLのコマンド類は以下のディレクトリにあった。
/usr/lib/postgresql/8.3/bin
psql実行時に良く見ると
—–ワーニング—–
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = “ja_JP:ja:en_GB:en”,
LC_ALL = (unset),
LANG = “ja_JP.eucJP”
are supported and installed on your system.
perl: warning: Falling back to the standard locale (”C”).
Welcome to psql 8.3.5, the PostgreSQL interactive terminal.
—-ここまで—–
どうもロケールの設定が良くないようでlocale -aで見ると確かにロケールにja_JP.eucjpがなかった。
ここを参考にロケールを追加
(参考)
http://d.hatena.ne.jp/Bayside/20080207/p1
/var/lib/locales/supported.d/localeに「ja_JP.EUC-JP EUC-JP」を追記して、locale-genを実行するとja_JP.eucjpが追加される。
たしかにlocale -aで見るとja_JP.eucjpが追加されていた。
euc-jpにコンソールのロケールを変更して、試してみるときちんと表示も入力もできるようになった。
$export LANG=ja_JP.eucjp
0 件のコメント:
コメントを投稿