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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.60283 の関連記事表示

<< 0 >>
■60283  日本語urlencode
□投稿者/ まっさ -(2011/06/27(Mon) 10:29:11)

    分類:[JavaScript] 

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

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

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

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

親記事 /過去ログ101より / 関連記事表示
削除チェック/

■60489  Re[1]: 日本語urlencode
□投稿者/ 魔界の仮面弁士 -(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)
    という結果となりました。一応参考までに。
    (もしかしたら、ブラウザの設定によって結果が変わってくるのかも?)
記事No.60283 のレス /過去ログ101より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -