[トピック内 2 記事 (1 - 2 表示)] << 0 >>
■No60283 (まっさ さん) に返信 > IEだとちゃんとエンコードされてURLに表記されるのですが > Chrome、Firefoxだと、アルファベット部分しかエンコードされません。 > 日本語はそのままです。 > location.href="http://hogehoge.htm?name=' + encodeURIComponent(name); http://groundwalker.com/blog/2007/02/javascript_escape_encodeuri_encodeuricomponent_.html のページで、source欄に「日本語」という文字列を入力して「encode」ボタンを押してみましたが、 Firefox 4.0.1 Chrome 12.0 Internet Explorer 8.0 のいずれも、encodeURIComponentで『%E6%97%A5%E6%9C%AC%E8%AA%9E』に変換されたため、 上記 3 ブラウザーすべて正しく urlencode されているように見えます。 > これは仕様なんでしょうか? たとえば『http://www.google.com?q=%E6%97%A5%E6%9C%AC%E8%AA%9E』 という URL をアドレスバーに入力した場合、アドレスバー上の見た目は Firefox …「http://www.google.com/?q=日本語」 Chrome …「www.google.com/?q=日本語」 IE …「http://www.google.com/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E」 と表示されました。 しかし、アドレスバーの内容をクリップボードにコピーした場合、いずれも 「http://www.google.com?q=%E6%97%A5%E6%9C%AC%E8%AA%9E」という文字列が得られましたし、 通信内容を追ってみると、実際にはいずれも同じ内容にパーセントエンコーディングされた 同じ文字列が送出されていることが分かります。 これらの事から、各ブラウザのアドレスバーにおける 「見た目上の表現」と「実際の内容」は別であるという事が分かります。 一方、逆に「http://www.google.com/?q=日本語」という文字列を入力した場合、 《表示内容》 Firefox …「http://www.google.com/?q=%93%FA%96{%8C%EA」 Chrome …「www.google.com/?q=日本語」 IE …「http://www.google.com/?q=日本語」 《アドレスバーからコピーした時にクリップボードに渡される文字列》 Firefox …「http://www.google.com/?q=%93%FA%96{%8C%EA」 Chrome …「http://www.google.com/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E」 IE …「http://www.google.com/?q=日本語」 《サーバーに送出されるQueryString》 Firefox …「/?q=%93%FA%96{%8C%EA」 Chrome …「/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E」 IE …「/?q={バイナリ}」(バイナリ部は 93,FA,96,7B,8C,EA) という結果となりました。一応参考までに。 (もしかしたら、ブラウザの設定によって結果が変わってくるのかも?)
管理者用
- Child Tree -