ロケールの設定

linux上で、db2クライアントのロケール切替がうまくいかない。

デフォルトロケール en_US.utf8 の環境で、
LC_TIMEやLC_ALLを、ja_JP.UTF8 に設定しても、
date型の表示が英語のロケールのまま。

OSの設定が悪いのか、DB2の設定が悪いのか..

メッセージファイルを入れないとあかんのかな?

悪戦苦闘の末、OSのロケールのパッケージを入れて解決。
/usr/share/i18nには、ja_JP があったのにな〜..

    • -

いろんなロケールに変えてみて、osのdateコマンドを確認しても、何も反映されない。

下のページ、参考ページを見て、パッケージが要りそうとわかりました。

http://d.hatena.ne.jp/nelnal/20070527/1180273275

http://blog.jetspeed.jp/2006/07/ubuntulocale/


ロケールに必要なものがそろっているか確認するには、perl をたたいてみるのが一番の模様...

locale
設定されているロケールは表示されるが、設定がちゃんと動くかどうかは確認できなかった
db2 get db cfg for
データベースのロケールは確認できるが、接続のロケールは確認できなかった

あと、当初の問題は解決したものの、調べていくにあたって、別の疑問にぶち当たる。

グローバリゼーションガイドのP.108には、クライアントテリトリコードの一覧で、
日本のデフォルト日付形式が、mm-dd-yyyy になっているのに、windows も、linux も、日本のロケールにすると、日付がyyyy-mm-dd で表示される。

なんでだろう?