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