- PR -

JavaScript(ajax)から日本語を含むパラメータ受信時の文字化け

1
投稿者投稿内容
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2007-02-03 16:48
いつも参考にさせて頂いております。

現在、JavaScriptとStrutsでAjaxのアプリケーションを作っています。
テキストボックスがあるフォームの送信ボタンがクリックされた時点で、
非同期にActionServletを呼び出し、Actionでパラメータを取得すると
日本語が文字化けしてしまい困っています。

JavaScriptでは、
encodeURIComponent()メソッドで、文字列をエンコードしています。
コード:

post_data = 'text=' + encodeURIComponent('深夜特急');


この場合、post_dataは
コード:

text=%E6%B7%B1%E5%A4%9CBE7%89%B9%E6%80%A5


と、amazonなどで検索した場合にURLに表示されるエンコード結果と一致することは確認できました。

しかし、このpost_dataをURLに含めてActionを呼び出すと
コード:

request.getParameter("text");


とパラメータを取得した時点で文字化けしてしまいます。
Eclipseのコンソールには”?・±????????\\”という結果が表示されてしまっています。

何か解決策をご存知の方がいらっしゃいましたご教授をお願い致します。







[ メッセージ編集済み 編集者: ぬべたそ 編集日時 2007-02-03 17:11 ]
やまだ
会議室デビュー日: 2005/12/05
投稿数: 2
投稿日時: 2007-02-03 17:27
URLエンコードは行わず、POSTメソッドで送信したらどうでしょうか。
TOMCATをお使いでしたら、普通は日本語が通るようにフィルタがかかっているかとおもいます。

このフィルタを通してあげれば日本語が化けないと思います。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-02-03 18:12
エンコーディングの変更用のサーブレットフィルタを利用していますか?

http://www.google.com/codesearch?q=encodingfilter+lang%3Ajava&hl=ja
http://www.google.co.jp/search?hl=ja&safe=off&rls=GGLJ%2CGGLJ%3A2006-40%2CGGLJ%3Aja&q=servlet+%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
1

スキルアップ/キャリアアップ(JOB@IT)