[pgsql-jp: 30780] Re: 漢字3 とは

Yumiko Ono yumi @ pise.co.jp
2003年 8月 15日 (金) 14:50:13 JST


いつも遅レスな大野です。

>psql で表示とありますが、文字コードは何で表示しましたか?
>EUC の場合、端末が PostgreSQL の EUC_JP (eucJP-open) に対応してお
>らず、正しく表示できない可能性が大です。
>
>ちなみに、TeraTerm の EUC では eucJP-open の 13区(NEC特殊文字) 
>以外の機種依存文字を正しく表示できません。TeraTerm の EUC で IBM
>拡張文字 (NEC選定IBM拡張文字) が正しく表示できてしまっている場合
>は、PostgreSQL の変換で期待する変換が行われず、他のソフトで 
>PostgreSQL に UTF-8 や SJIS でアクセスして表示させると文字化けし
>ます。

ショック!そうだったのですか!!
TeraTermProを使用しています。
KANJI設定をEUCにしてちゃんと見えていたので、
DBにEUC_JPで入っていると思い込んでいました。

バイナリで表示してみたところ、
ACCESS から入力したものは、ちゃぁんと、正しいコードに変換されていました。
例)(SJIS)fae3 → (EUC)8fc3c9 「ソウという漢字」
つまり、
>> ・ACCESSから入力 → ACCESSで表示:問題なし
>> ・ACCESSから入力 → psqlで表示:文字化け(他のコードに変換されている)
 ↑これは正しく、
>> ・PHPから入力 → PHPで表示:問題なし
>> ・PHPから入力 → psqlで表示:問題なし
>> ・PHPから入力 → (2)経由でACCESS で表示:文字化け、もしくは「・」
>> ・ACCESSから入力 → PHPで表示:文字化け(他のコードに変換されている)
 ↑これは、PHPのmbstringの設定の問題

すっかりWindows側を疑ってしまった私。
みなさん本当にごめんなさい。
片岡さん、本当にごめんなさい。

># ちなみに、Widnows 用ブラウザの EUC-JP は、上記ページで説明され
># ている eucJP-open(eucJP-ms) とは別物で互換性はないので注意が必
># 要です。

これまたショック!IE 恐るべし。

>  mbstring.internal_encoding    = eucJP-win
>  mbstring.http_output          = Windows-31J
ここがミソですね。

>  mbstring.http_input           = ASCII,JIS,Windows-31J,UTF-8,EUC-JP
URL エンコードのからみで、悩んだことがあるのですが、
上記で問題なかったですか?

話題は、PHPのMLのほうに移ったほうがよいのかもしれません。

ちなみにphp.iniの設定は現在以下のとおりです。
default_charset = "EUC-JP"
mbstring.language = Japanes
mbstring.encoding_translation = On
mbstring.internal_encoding = EUC-JP    
mbstring.http_input = "EUC-JP, eucJP-win, ASCII, JIS, UTF-8, SJIS"
mbstring.http_output  = EUC-JP    
mbstring.detect_order = "EUC-JP, eucJP-win, ASCII, JIS, UTF-8, SJIS"
mbstring.substitute_character = none

これもいろいろ悩んだ挙句の結果だったのですが、
全体の漢字の扱いについての設計が甘かった、です。
今度は、PHP側を見直してみます。

〔補足〕
コード変換についての資料の入手先
 http://hp1.jonex.ne.jp/~nakajima.yasushi/
 WINCODE
 ibmext.txt   … OSF/JVCによるIBM 拡張文字の日本語EUCへの変換表

//--------------------------------------
// 大野 由美子 / yumi @ pise.co.jp
//
// ピセ株式会社  システム技術グループ
// 〒105-0012
//   東京都港区芝大門 1-3-8
//   アトラス芝大門ビル 5F
// TEL 03-5402-6930  FAX 03-3432-1310
//--------------------------------------



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