[pgsql-jp: 38285] Re: 主キーの重複登録とそれに伴うlikeと=の検索結果の相違について

ITAGAKI Takahiro itagaki.takahiro @ oss.ntt.co.jp
2007年 4月 4日 (水) 15:26:21 JST


岩藤 謙一郎 <iwafuji.kenichiro @ toshiba-sol.co.jp> wrote:

> select * from pg_settings
> lc_collate Japanese_Japan.932
> lc_ctype Japanese_Japan.932
> (不要な部分は略)
> 
> エンコーディングについては以下の通りとなっています。
> 
>        List of databases
>    Name    |  Owner  | Encoding
> -----------+---------+----------
>  ********  | ******* | EUC_JP

やはり、ロケールとエンコーディングのミスマッチが原因ですね。
ロケールを正しく設定しなおすために、のデータベースクラスタ再構築が必要です。

全データをダンプした上で、ロケールが必要なければ、
    initdb --encoding=EUC_JP --no-locale
必要ならば "Japanese_Japan.20932" で初期化し、
    initdb --encoding=EUC_JP --locale=Japanese_Japan.20932
データをリストアしてください。

ロケールが必要ないならば、--no-locale がお勧めです。

ロケールを有効にする場合、上記の設定ならば、ある程度はうまくいきます。
ただ、PostgreSQLのEUC_JP と WIN20932 のマッピングが異なる文字では
問題が残るかもしれません。
# 具体的にどのようにマッピングが異なるかまでは調べてません。




pgsql-jp メーリングリストの案内