- PR -

JSPと自作クラスからの出力で文字化け

1
投稿者投稿内容
ころ
会議室デビュー日: 2005/09/06
投稿数: 2
投稿日時: 2005-09-06 20:34
はじめて質問します。

JSPの中で、自作のJavaクラスからの返り値を表示させているのですが、
その返り値の部分だけが文字化けして、全ての文字が?になってしまいます。

自作クラスでは、テキストのマスタファイル(文字コードはEUC)を読み込んで、
引数として与えたコードにあう名称をもってくるメソッドを作っています。

同じクラスをJavaのコードに使って、同じメソッドを呼び出したのですが、
コンソール画面で見たときには正しく表示されます。

環境はDebian3.1(Sarge) +Apache 2.0.54+Tomcat 5.0.28(mod_JKで連携)です。

以下 JSPソースからの抜粋です。
---
<%@page contentType="text/html,charset=EUC-JP" pageEncoding="EUC-JP" %>
<% Master MstDept=new Master();
(中略)
String strDeptName=MstDept.strGetNameByCode(strDeptCode);
%>
<HTML>
<BODY>
部署コード: <%=strDeptCode%> <BR>
名称 : <%=strDeptName%>
</BODY>
</HTML>

この<%=strDeptName%>のところだけが文字化けします。

過去ログを参照して、
TomcatのServer.xml でポート8080にuseBodyEncodingForURI="True"を追加したり、
web.xml のjavaEncodingを EUC-JPに変更したりしてみたのですが、
どうしても解決できません。
アドバイスをいただけないでしょうか?
よろしくお願いいたします。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-09-07 00:51
引用:
自作クラスでは、テキストのマスタファイル(文字コードはEUC)を読み込んで、
引数として与えたコードにあう名称をもってくるメソッドを作っています。



こちらの読み込み時にjava.io.InputStreamReaderのコンストラクタで
明示的にエンコーディングとしてEUC-JPを指定していますか?

デーモンとして動かした場合は、LANG環境変数を設定しないことが多いので、
その場合にはデフォルトコンストラクタでは文字化けしてしまいます。
ころ
会議室デビュー日: 2005/09/06
投稿数: 2
投稿日時: 2005-09-07 11:26
あしゅさん、ありがとうございます。

おっしゃったとおり、InputStreamReaderに第2引数にEUC-JPの指定をして、TomcatとApacheを再起動したら、ちゃんと表示されるようになりました。
(再起動しないとできなかったので、ちょっとあきらめモードだったのですが)

今後ともよろしくお願いいたします。
1

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