Urlエンコード
- GoogleやYahooの検索窓設置とurlエンコード
- GoogleやYahooの検索窓設置 については、それぞれの説明ページ( Google ||Yahoo )の解説に従えば、問題はない。両者とも、htmlコードを用意しており、そのhtmlコードのなかに、設置ページの文字コードを正しく組み込めば、文字化けはほぼ起こらないと思われる。これらの検索窓はフォームを利用しており、検索ボタンを押すと、ブラウザーが、正しい方法で、検索語を、変換してくれる。この変換をurlエンコードという。urlエンコードにも、utf-8エンコード、euc-jpエンコード、shift_jisエンコード等いろいろあるが、どの方法でエンコードし、どのような形式で、リンクを送ったらいいかは、送る相手の仕様しだいなのだ。YahooもGoogleも、検索窓設置ページの文字コードに対応した、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エンコードツール
UTF-8デコードツール
関連リンク
- 各種のエンコード/デコードツールはこちら(encodedecodetool)
- 一括入力できるエンコード/デコードツールはこちら(encodecenter)