[pgsql-jp: 38223] Re: [Pginstaller-devel] Codepage of EUC_jp is 20932
Hiroki Kataoka
kataoka @ interwiz.jp
2007年 3月 26日 (月) 18:10:30 JST
片岡です。
ITAGAKI Takahiro wrote:
> ロケールを使う場合、エンコーディングを含めたロケールを指定するのが安全です。
> 以下のいずれかを使って、初期化してください。
>
> - [Unix] initdb --encoding=EUC_jp --locale=ja_JP.eucjp
> - [Unix] initdb --encoding=UTF-8 --locale=ja_JP.utf8
> - [Windows] initdb --encoding=EUC_jp --locale=Japanese_Japan.20932
> (※ Windows では UTF-8 は問題があります。使わないほうが無難です。)
initdbでロケールを指定しても、CREATE DATABASE等で異なるエンコーディン
グが指定できてしまいますので、それなりに注意が必要です。
ところで、ビルド条件によっては(主にUNIX系のOS上では)、initdbがエン
コーディングとロケールの組み合わせの妥当性をある程度チェックしてくれま
す。またエンコーディングを指定しなかった場合には、現在のロケールに合った
エンコーディングを自動選択してくれる機能もあります。
で、これらの機能をWindows版でも働くようにすることと(ロケールの表記が
UNIX系と異なるので面倒そうですが…)、ロケールが指定されていた場合には
CREATE DATABASE等で任意のエンコーディングを指定できないようにすること
で、混乱がいくぶん改善されるのではないかと思っているのですが、どんなもの
でしょう。
--
Hiroki Kataoka <kataoka @ interwiz.jp>
pgsql-jp メーリングリストの案内