[pgsql-jp: 31080] Re: SJISデータ

Naofumi Kondoh nkondo @ techno-con.co.jp
2003年 9月 17日 (水) 20:32:25 JST


ソフト工房の近藤です。

荻原 宣之 wrote:

-- 略 --
> PostgreSQLのデータベースではエンコードをEUC_JPにして、
> データをSJISのまま登録しています。

本当ですか?
PostgreSQLのバージョン:7.3.4 をご使用とのことですが、
最近の PostgreSQL だと、createdb -E EUC の DB に、
PGCLIENTENCODING=EUC_JP のまま、SJIS データーを無理矢理
入れるとエラーになる場合が多い筈です。

PostgreSQL 7.3.1 で試してみましたが次のようなエラーに
なり、北海道は入れられませんでした。

ERROR:  copy: line 2, Invalid EUC_JP character sequence found (0x966b)

これは、SJIS の「北」が、EUC_JP としては、認められない
文字コードの為だと思います。

$ echo '北' | nkf -Es | od -x
0000000 6b96 000a

ひょっとして、SET CLIENT_ENCODING=SJIS; などとして、
PostgreSQL で、SJIS → EUC 変換させてデーターを入れ
られているのではないでしょうか。

それにしても、奇妙な現象ですね。

> そのデータに都道府県名が入っているデータがあるのですが、
> 都道府県名を検索条件にすると、下記のように意図しない
> データが抽出されることがあります。
-- 略 --

私は、MS Windows 拡張漢字のコード変換問題で悩んでいますが、
都道府県名は、JIS 第1種、2種の範囲だし、SJIS のトラブル
の元となる 0x5c も入っていないし。不思議不思議。

役に立たない話で申し訳ない。

==================================================
ソフト工房 近藤直文  nkon @ shonan.ne.jp





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