Windows環境でinitdb d:\pg_data
としたら、以下のようなメッセージが表示されました。
データベースクラスタはロケール"Japanese_Japan.932"で初期化されます。
ロケールにより暗示される符号化方式"SJIS"はサーバ側の符号化方式として使用できません。
デフォルトのデータベース符号化方式は代わりに"UTF8"に設定されます。
--encoding=UTF8
としなくても、SJISじゃなくて勝手にUTF-8になるのか。ほうほう。
ん?Japanese_Japan.932ってMS932のこと?
エンコーディングがMS932(Windows-31J)になってしまうわけではないそうです。
http://lets.postgresql.jp/documents/technical/text-processing/2 から引用。
※ Windows で UTF8 エンコーディングを使う場合のみ、ロケールのエンコーディングにコードページ 932 (SJIS) を使うことができます。これは Windows の C ライブラリが UTF8 でのロケール処理をサポートしていないためで、PostgreSQL 側で専用の対応を行っています。
んー、結局詳細は分からず。
ソートとかはUTF8扱い?それともSJIS?後日調査します。
ただ、基本的には--locale=C
が推奨されているようです。