[PHP-users 14267] Re: getでの文字コード対策

shima tetuo php-users@php.gr.jp
2003年 3月 25日 (火) 05:46:11 JST


> と、ごくごくオーソドックスな郵便番号検索の処理をやりたいのですが。
> 親フォームのJava Script側のfunctionで、
> 
> var strURL = "../../program/fncGetZipCode.php"
>   +"?selPref=" + document.frmBranch.selPref.value
>   +"&txtAddress1=" + document.frmBranch.txtAddress1.value;
> 
> window.open(strURL, 'GetZipCode', 'location=no,statusbar=no
>   ,menubar=no,toolbar=no,scrollbars=yes,width=635,height=200');
> 
> と記述しポップアップウィンドウを開き、fncGetZipCode.php に値を受け渡
> しています。
> で、fncGetZipCode.php が受け取った $txtAddress1 は、全角文字なので文
> 字化けしています。


問題はPHP側ではなく、Javascriptより2バイト文字を直接引数にしているからだ
と思います。

この辺りが参考になると思います。
http://www-yano.is.tokushima-u.ac.jp/~ochi/education/ols/programming/dhtml/postget.htm
http://www.cresc.co.jp/tech/java/URLencoding/JavaScript_URLEncoding.htm

NNでうまくいってIEだと駄目なのは、IEでは入力される文字はUnicodeだからで
はないでしょうか?

簡単に纏めると、Javascriptで2バイト文字をサーバー側に渡すには

Javascript自体でパラメータをエンコードし、サーバーに渡す。
又は
POSTでデータをサーバーに渡す。

ではないかと思います。




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