C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 日本語urlencode


(過去ログ 101 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■60283 / inTopicNo.1)  日本語urlencode
  
□投稿者/ まっさ (56回)-(2011/06/27(Mon) 10:29:11)

分類:[JavaScript] 

javascriptで以下のように日本語をクエリストリングでくっつけてます。
IEだとちゃんとエンコードされてURLに表記されるのですが
Chrome、Firefoxだと、アルファベット部分しかエンコードされません。
日本語はそのままです。

location.href="http://hogehoge.htm?name=' + encodeURIComponent(name);

これは仕様なんでしょうか?

どうすればよいかご存知の型がいれば、よろしくお願い致します。


引用返信 編集キー/
■60489 / inTopicNo.2)  Re[1]: 日本語urlencode
□投稿者/ 魔界の仮面弁士 (2235回)-(2011/07/05(Tue) 16:32:19)
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)
という結果となりました。一応参考までに。
(もしかしたら、ブラウザの設定によって結果が変わってくるのかも?)

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -