- PR -

encodeURIComponentについて

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-11-18 11:32
こんにちは。

現在、WEBアプリで全角文字を含むURLを使い、Ajax通信しております。
Javascript側では必ず、encodeURIComponentをURLのパラメータにかけておりますが、それでもJava側で取得した時には文字化けが起こっています。

文字コードは、HTML表示もJavascriptもUTF-8で統一しています。どうやら、Win31jとMS932のせいで、「ー」文字などが化けるようですが、具体的にどのような対策が考えられますでしょうか?Javascriptの投げる側とJavaで取得した側のどちらかで変換をかけるのはよいのですが、文字コードの変更はできません。また、Win & Mac共に動作させたいです。

環境はTomcat5.5 & webwork2 & DWR & IE6で確認しています。お分かりになりましたらよろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-18 13:21
tomcat 文字化けでググると色々でてきますが、試しました?
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-11-19 17:57
かつのりさん、ありがとうございます。

servlet.xmlで文字コードを指定しましたら、うまく行きました。
ただ、アプリ側でEncodingFilterをかけているので、そのせいでは無いと思ってたんですが・・(他Actionでは正常に認識してましたし・・)。

DWRの通信がTomcat依存と言う事ですね・・。Ajaxですし。

ありがとうございました。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-19 20:31
引用:

DWRの通信がTomcat依存と言う事ですね・・。Ajaxですし。


Tomcatでserver.xmlに文字コード設定を行わないと、
通常のブラウザによるGETのアクセスでも、
マルチバイトのパラメータは文字化けします。

そういう意味ではDWRの通信というよりも、
GETリクエストそのものが、
アプリケーションサーバに依存することになります。
送られてくる値をどう解釈するかはサーバ次第です。

Tomcatでもエンコーディングの設定せずに、
文字化けなしでマルチバイトのパラメータを受け取りたい場合、
POSTで送信するというのもありです。
1

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