Urlエンコード

GoogleやYahooの検索窓設置とurlエンコード
GoogleやYahooの検索窓設置 については、それぞれの説明ページ( Google ||Yahoo )の解説に従えば、問題はない。両者とも、htmlコードを用意しており、そのhtmlコードのなかに、設置ページの文字コードを正しく組み込めば、文字化けはほぼ起こらないと思われる。これらの検索窓はフォームを利用しており、検索ボタンを押すと、ブラウザーが、正しい方法で、検索語を、変換してくれる。この変換をurlエンコードという。urlエンコードにも、utf-8エンコード、euc-jpエンコード、shift_jisエンコード等いろいろあるが、どの方法でエンコードし、どのような形式で、リンクを送ったらいいかは、送る相手の仕様しだいなのだ。YahooGoogleも、検索窓設置ページの文字コードに対応した、urlエンコードで、検索呼び出ししてくださいと、説明ページに書いてあるので、それに従えばよい。
フォームではなく、リンクで検索呼び出しする場合
私のサイトには、フォームではなく、リンクで検索結果を呼び出す部分があり、この場合は、ブラウザーのエンコードが、確実ではないので、javascriptを利用してurlエンコードをする必要がありました。そこで、利用したのが、Escape Codec Library: ecl.jsですが、その後、このスクリプトは、あるブラウザーと相性がわるいらしいことが判明したので、今は、その改良版、ecl_newを使っています。
Yahooをurlエンコードせずに検索呼び出しすると
コード : <a href="http://search.yahoo.co.jp/search?p=神田うの" target="_blank">神田うの</a>
結 果 : 神田うの
Yahooをurlエンコードして検索呼び出しすると
コード : <a href="http://search.yahoo.co.jp/search?p=%E7%A5%9E%E7%94%B0%E3%81%86%E3%81%AE" target="_blank">神田うの</a>
結 果 : 神田うの
エンコードしないとブラウザーによって違う検索結果に
Yahooの検索結果だが、私の持っているブラウザーfirefox3.0とie6の両方で、実験すると、firefoxは正しく表示され、ie6では文字化けした。すなわちブラウザーによって、結果が違ったのだ。やはり、urlエンコーディングは必要である。
ecl_newの使い方

ecl_newをダウンロードし、 ecl.jsの解説に目を通す。ecl_new.jsは、表示htmlと同じフォルダーに置く。

<head>から</head>のあいだに次のコードを貼り付ける。(設置フォルダーが、同じ場合)

<script type="text/javascript" src="ecl_new.js"></script>

<body>から</body>のあいだに次のコードを貼り付ける。神田うのを検索する例。


<script type="text/javascript">
<!--
  var aa = EscapeUTF8("神田うの") ;
  document.write('<a href="http://search.yahoo.co.jp/search?p=' + aa + '" target="_blank">神田うの<' + '/a>');
// -->
</script>

結果 :

UTF-8エンコードツール

    Enter a string:


    URL encoded data:

UTF-8デコードツール

    Enter a string:


    URL decoded data:

関連リンク

inserted by FC2 system