- - PR -
strutsの文字化け
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-02-26 18:05
はじめまして。
struts1.2のValidatorプラグインの結果が文字化けします。 定番のメッセージリソースの内容が文字化けするのでは なく、validation.xmlの定義内容が文字化けします。 具体的にはvalidation.xmlに以下の定義をし、 <field property="user_name" depends="required"> <arg0 key="ユーザー名" resource="false" /> </field> user_nameが未入力だった場合に、「繝ヲ繝シ繧カ繝シ蜷搾シ?は必ず入力してください」 とarg0 key=で指定した「ユーザー名」と言う文字が文字化けして表示されて しまいます。 JSP側では <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ page pageEncoding="Shift_JIS" %> を定義し、META要素での定義はしていません。 サーブレット側では、SetCharacterEncodingFilterをFilterし、 更にActionServletクラスを継承し、オーバーライドしたprocessメソッド でrequest.setCharacterEncoding("Shift_JIS"); を実行しています。 OS:WindowsXP SP2 TOMCAT:Tomcat5.5 Apache:連携なし 開発ツール:Eclipse3 宜しくお願いします。 | ||||
|
投稿日時: 2007-02-26 18:48
JSP では Shift_JIS で表示しようとしているようですが、実際に化けている部分はその化けかたからして utf-8 になっているように見えます。 | ||||
|
投稿日時: 2007-02-27 13:27
ご返答ありがとうございます。>きよのさん
どこが原因かはまだ分かりませんが、想定に反してutf-8に 設定されていると言う観点でもう少し自力で調査してみます。 もし私の既存の設定以外で怪しいところがあるのでは? と思われる方がいましたらご指摘をお願いします。 | ||||
|
投稿日時: 2007-02-27 13:55
私も以前似たような問題ではまったことがあるのですが、
java で xmlを読み取る際、エンコーディングの指定をしないと (デフォルトでは)utf-8として読み取るみたいです。 そのため、きよのさんのご指摘の通り、utf-8になっているはずです。
解決策としては
が良いかなと。 私が遭遇した問題は上記(1)で解消しました。 上記(2)は申し訳ありませんが、未実施です。 お時間があれば合わせてご確認下さい。 | ||||
|
投稿日時: 2007-02-27 16:12
tmpさんご回答ありがとうございます。
以下の方法で解決しました。 ・validation.xmlファイルでファイルのエンコーディングを指定する。 ・eclipseでvalidation.xmlのテキスト・ファイル・エンコードを Shift-JISにする。(ファイル右クリックのプロパティで設定) ・それと安全の為に、web.xml(Tomcatホームのconfの下の方)の JSPのサーブレットタブの中に<init-param>でjavaEncodingを追加。 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>javaEncoding</param-name> <param-value>Shift_JIS</param-value> </init-param> </servlet> これで完全に文字化けは消えました。 皆さんありがとうございました。 |
1