• ベストアンサー

文字変換?

こんにちわ。 自分でも、今一わかってないのですが、例えばYahoo! Japanで ブログ  と検索した場合に、下記のURLを検索結果として表示します。 http://search.yahoo.co.jp/search/dir?p=%E3%83%96%E3%83%AD%E3%82%B0&ei=UTF-8&x=drt そこで、質問なのですがJavaScriptを使って、入力された文字をUTF-8?(%E3%83%96%E3%83%AD%E3%82%B0の部分)に変換する方法はあるのでしょうか? 具体的には、複数の検索エンジンに1つのテキストボックスから検索出来る様にしたい為、そのテキストボックスに入力された文字を変換する方法を教えて欲しいです。 よろしくお願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • susie-t
  • ベストアンサー率86% (37/43)
回答No.3

まあ、現在の一般的なブラウザの最新Verであれば var encoded = encodeURICompornent("あいうえお"); で大丈夫だと思います。

fea
質問者

お礼

この方法で解決出来ました。参考書に載ってない知識だったので大変助かりました。 また、2度に渡って回答して頂き、ありがとうございましたm(_ _)m

fea
質問者

補足

初歩的な質問ですみません。 この方法でエンコードした値を、変数等へ渡すにはどうすればいいですか? 回答、よろしくお願いしますm(_ _)m

その他の回答 (4)

回答No.5

確認してないけど、スペルが違う >encodeURICompo【r】nent

fea
質問者

お礼

ご指摘の通り、スペルが違っていました。修正後、問題が解決しました。 回答頂き、ありがとうございましたm(_ _)m

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.4

えと、 var encoded = encodeURICompornent("あいうえお"); で、すでに変数 encoded に入れているのですが・・・。 encodeURICompornentはグローバル関数で 引数の文字列をエンコードして返却します。 なので、入力値をエンコードしたければ <input type="text" id="in"/> <script> var value = document.getElementById("in").value; var encoded = encodeURICompornent(value); //↑エンコードされた結果が格納されている。 </script> とかになると思います。

fea
質問者

補足

度々すみません。ご指摘の通りに手を加えてみたのですが・・・、”オブジェクトを指定して下さい”とエラーが出ます。ソースを公開しますので、アドバイスをお願いしますm(_ _)m 【JavaScript部分のソース(HEAD内)】 <script language="JavaScript"> <!-- function qSearch(){ i = document.getElementById("qsList").value; var value = document.getElementById("qsKey").value; var encoded = encodeURICompornent(value); switch(i){ case "1": newWin=window.open("http://search.yahoo.co.jp/search?p=" + encoded); break; case "2": newWin=window.open("http://www.google.co.jp/search?hl=ja&q=" + encoded); break; case "3": newWin=window.open("http://search.goo.ne.jp/web.jsp?MT=" + encoded); break; case "4": newWin=window.open("http://search.msn.co.jp/results.aspx?q=" + encoded); break; case "5": newWin=window.open("http://www.excite.co.jp/search.gw?target=combined&look=excite_jp&search=" + encoded); break; case "6": newWin=window.open("http://search.www.infoseek.co.jp/Seek?qt=" + encoded); break; default: alert("サーチエンジンを選択して下さい..."); break; } } //--> </script> 【フォーム(BODY内)】 <table border="0" height="100%" width="100%" cellpadding="0" cellspacing="0" style="background-image:url(images/qsearch.gif); background-position:left top; background-repeat:no-repeat;"> <tr height="17"> <td> </td> </tr> <tr> <td> <select name="qsMenu" id="qsList"> <option value="-" style="color:#0000FF; font-weight:bold;">▼Webページ検索▼ <option value="1" class="qm1">[Web]Yahoo! Japan <option value="2" class="qm1" selected>[Web]Google <option value="3" class="qm1">[Web]goo <option value="4" class="qm1">[Web]MSN <option value="5" class="qm1">[Web]excite <option value="6" class="qm1">[Web]infoseek </select> </td> <td> <input type="submit" value="リンク" name="qsMenu" id="qsLink"> </td> </tr> <tr> <td> <input type="text" size="36" name="qsMenu" id="qsKey"> </td> <td> <input type="button" value="検索" name="qsMenu" id="qsButton" onClick="qSearch()"> </td> </tr> <tr height="15"> <td> </td> </tr> </table>

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

これ、UTF-8じゃないですよ。。。 文字のエンコーディングをしているだけです。 でも、URLEncodeはブラウザ依存な関数なので、 http://www.cresc.co.jp/tech/java/URLencoding/JavaScript_URLEncoding.htm 自力で実装するのが良いということになってしまいますね。。。

fea
質問者

お礼

参考になる知識とURL、ありがとうございました。

回答No.1

試していませんが、UTF8/16 変換ライブラリを公開されているサイトがありました。 (下記リンク)

参考URL:
http://user1.matsumoto.ne.jp/~goma/js/utf.html
fea
質問者

お礼

回答頂きありがとうございましたm(_ _)m

関連するQ&A

専門家に質問してみよう