[pgsql-jp: 26794] Re: Win Pgaccess で文字化けてます

Satoshi Nagayasu snaga @ oak.forus.or.jp
2002年 7月 22日 (月) 14:46:02 JST


Tatsuo Ishii wrote:
> > > サーバ側で確認してみると、「あ」という文字が「e3 81 82」という3バイトで
> > > 保存されているようです。ちなみに、「い」という文字は「e3 81 84」と
> > > なっていました。

> e3 81 82はUTF-8で「あ」だから合ってますね.

あぁ、やっぱり…。

> これは,'の対応が取れていない兆候ですね.tcpdumpなんか使わなくてもバッ
> クエンドに送られたqueryのログを見れば何が起きているかすぐ分かると思い
> ますよ.もちろんgdbを使っていいし.

UTF-8めいた文字列(?)が残ってます。ログに残るクエリもUTF-8で書かれるん
でしょうか?

Jul 22 14:31:43 penguin postgres[878]: [38] DEBUG:  query: insert into "test" ("t") values ('縺ゅ>縺・∴縺顎210)

言い忘れましたが、ASCII文字だけだと問題ないんですね。

Jul 22 14:34:02 penguin postgres[878]: [40] DEBUG:  query: insert into "test" ("t") values ('test')

あと、先ほども書きましたが、「2バイト文字で終わってるとエラー」が起こ
るらしく、「あいうえおa」みたいな文字列だとエラーになりません。

Jul 22 14:37:25 penguin postgres[878]: [41] DEBUG:  query: insert into "test" ("t") values ('縺ゅ>縺・∴縺蛎')

まぁ、UTF-8っぽいので、何が何だか分からないログですが、上のログと似て
いるけど最後がちと違うことだけは分かりますね。

というわけで、なんか Tcl のエンコーディングのハンドリングがおかしいん
じゃないかと思っているのですが、それを追い続けるガッツ(?)が無く…。

余裕ができたら月末にでももうちょっと調べてみようかと思ってます。


> ところでデータベースのエンコーディングは何ですか?

UNICODE と EUC_JP を試してみました。どちらでも同じ状況だったと思います
が、記録を残してなかったのでハッキリしません。

p.s.
比較しようと思って、Linux上でpgaccess動かしたんですが、日本語を入力で
きなくてめげました。

-- 
NAGAYASU Satoshi <snaga @ oak.forus.or.jp>



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