- ベストアンサー
日本語をGETで渡す場合URLエンコードは必要?
下記の例のように全角文字をaタグのGETメソッドでPHPに渡し、その全角文字で検索した 結果を表示するスクリプトを製作中なのですが、 日本語内に空白等もないですし、あらかじめ検索する語が決まっているので ブラウザはIE9とFIREFOX9.0.1で試しましたが両方とも文字化けすることなくOKでした。 このスクリプトを万人向けに公開する場合、URLエンコード必要なのでしょうか? 例: <a href="http://hoge.php?word=日本語">日本語</a>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
URLにマルチバイト文字が含まれる場合の挙動はブラウザや設定によって異なります。 FirefoxはUTF-8としてエンコードするようですが、 そう言う挙動をしてくれないブラウザもあります。 実際にどういう挙動をするかは、php側で生のgetデータを見るとか、ネットワークをモニタすれば分かるでしょう。 本当に問題ないか確認するよりはURLエンコードした方が早いと思います。 “生”の日本語を含む日本語URL http://pnir.sitemix.jp/2010/04/05/japanese-url/ ブラウザによる URL のエンコーディング http://surferonwww.info/BlogEngine/post/2011/11/07/Encoding-of-URL-directly-written-in-address-bar-of-browser.aspx
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>URLエンコード必要なのでしょうか? 基本的に必要ですが、それはサービスする側のポリシーの問題なので もしエラーになって困る人がいてもかまわないというのであれば エンコードしなくてもよいでしょう。 その場合、エラーになった人はソースを見て 「こいつURLに日本語なんかつかっているよ」という 物笑いの種になる覚悟が必要ですが・・・