[PHP-users 29733] Re: Q.西や表などの一部の漢字がPOSTできないのです。

高橋政利 takahashi @ hoshino-dk.co.jp
2006年 7月 12日 (水) 16:58:24 JST


高橋です。> 検索フォームを作成中なのですが
> 「西」 「表」 「西表」という漢字を入力するとPOSTできないのです。
> 
> 「西」は何も入力していない状態:namae like '%%' になります。
> 「表」は「\0」になってしまいます:namae like '%\0%'
> 
> 「表示」や、「西日本」、「西表市」などのように他の文字を付け足したり、
> 「表 」などとスペースを付け足した場合はPOSTできます:namae like '%表 %'
> 
> 色々な漢字で試してみましたが、POSTできるのですが
> よりによって、おそらく検索に使う確率の多いであろうこの二文字なのです・・
> 
> (この二文字はフォームからのMysqlへの書き込みは正常です)
> 
> ■現在のテスト環境
> Windows2000、Apache1.3.33 php4.4.1 Mysql4.0.24
> 
> スクリプトの保存、ブラウザ出力はEUC-JPで統一しています

私の環境はWindowsXPhome Apache2.0.54 php5.1.4 MySQL4.0.24と若干違います
が、同じくEUC-JPで統一しています。
自身の環境は大丈夫。と思っていたのですが、試しにPOSTした文字を表示するプ
ログラムを作って動作確認したところ、言われているように「西」とか「表」で
は何も表示しないもしくは文字化けします。ちなみに「星」という字もダメでし
た。(今まで部内からクレームがなかったのは、なぜだろう? 笑 )

いろいろと設定を変えていたら、直ったみたいなので参考程度にして下さい。
なぜそうなるのかは分かりません。これから調べるつもりでいます。

PHP.INI
[mbstring]
変更前
mbstring.encoding_translation = On
変更後
mbstring.encoding_translation = Off

どうでしょう?




PHP-users メーリングリストの案内