AjaxでURLにGET情報をつけて渡す時に日本語をエンコードし忘れていたのでメモ。
- <script type="text/javascript">
- // 日本語をエンコードしてURLに文字列連結
- name = encodeURI('ここにGETに渡す日本語');
- url = 'http://www.example.com/search?name=' + name;
- // 後はエンコードされたURLを使って任意の処理を書く
- new Ajax.Updater(
- 'id_name',
- url ,
- {asynchronous:true, evalScripts:true, parameters:Form.Element.serialize('form_name'), requestHeaders:['X-Update', 'id_name']}
- );
- </script>
エンコードし忘れてGETを送っていてFirefoxでは自動的にエンコードしてくれていたので気付かなかったのですが、IEではサーバー側で文字化けしていました。