[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 メーリングリストの案内