Posted on

URLに日本語を渡す時のメモ (encodeURI)

AjaxでURLにGET情報をつけて渡す時に日本語をエンコードし忘れていたのでメモ。

  1. <script type="text/javascript">  
  2. // 日本語をエンコードしてURLに文字列連結  
  3. name = encodeURI('ここにGETに渡す日本語');  
  4. url = 'http://www.example.com/search?name=' + name;  
  5. // 後はエンコードされたURLを使って任意の処理を書く  
  6. new Ajax.Updater(  
  7. 'id_name',  
  8. url ,  
  9. {asynchronous:true, evalScripts:true, parameters:Form.Element.serialize('form_name'), requestHeaders:['X-Update''id_name']}  
  10. );  
  11. </script>  

エンコードし忘れてGETを送っていてFirefoxでは自動的にエンコードしてくれていたので気付かなかったのですが、IEではサーバー側で文字化けしていました。