[PHP-users 19721]Re: 変数の受け渡しで一部文字化けするものがある。
Osamu Shigematsu
shige @ ravi.ne.jp
2004年 1月 6日 (火) 15:40:07 JST
重松です。こんにちは。
値を URL エンコードする必要があると思います。
また、短すぎる値は文字のエンコードの判定に失敗する可能性があります。
以下のようにしてみてはいかがでしょうか?
test2.php
printf("<A href=\"test1.php?jname=%s\">戻る</A>",$iname);
の部分を、
printf("<A href=\"test1.php?jname=%s\">戻る</A>",urlencode($iname));
のように URL エンコードしてみる、それでもだめならば、
漢字コードの判定が可能になるように、ヒントとなる文字を埋め込むとか。
print '<a href="test1.php?hint=%fd%fe&jname='
.urlencode($iname).'">戻る</a>';
ヒントとなる文字列としては、
http://www.mikeneko.ne.jp/~lab/kcode/web.html
あたりをご覧ください。
それから、
mbstring.http_input = auto
mbstring.http_output = SJIS
の部分ですが、これだと、PHP は送られてくるデータのエンコードを auto,
すなわち、"ASCII, JIS, UTF-8, EUC-JP, SJIS" と認識しますが、
実際には、http_output = SJIS なのだから、EUC-JP か SJIS か
わからないときには、SJIS と判定されないとまずくないですか?
携帯向けなどで SJIS でやらなければならない場合は別ですが、
そうでないなら、出力も EUC のほうが楽でよいと思います。
--
Osamu Shigematsu
http://www.ravi.ne.jp/%7eshige/
PHP-users メーリングリストの案内