こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

JSP>errorPageで指定したページが文字化けしてしまう

WindowsXP+tomcat5.0.28にて
hello.jsp --------------------------------------------------------------
<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ page errorPage="error.jsp" %>
error.jsp -------------------------------------------------------------
<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ page isErrorPage="true" %>
----------------------------------------------------------------------
hello.jspの中で例外が発生するとerror.jspが呼ばれますが、error.jspの内容が文字化けしてブラウザに表示されます。
でも、error.jspを直接ブラウザから呼ぶと文字化けが起きません。
JSPの例外処理機構で呼ばれた時だけ文字化けしているように見えます。解決方法ありますか?

投稿日時 - 2008-03-04 17:42:43

QNo.3832625

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

でも、error.jspを直接ブラウザから呼ぶと文字化けが起きません。>
<%@ page errorPage="error.jsp" %>を使用したことがないので明確な回答は出来ないですが・・・。
■1.<%@ page pageEncoding="Windows-31J" %>を1行加える

■2.hello.jspとerror.jspの文字コードを同じ文字コードで保存する。

■3.上記内容で解決しなければ、JSPファイルが出力指定している文字コードと違っているとかではないでしょうか?
※例えば、Shift_JISコードで表示と指定しているのにファイルを保存する際にUTF-8などで保存しているとかではないでしょうか?

■4.上記内容で解決しなければ、JSP側の文字化け問題でしたら以下のサイトを(JSP側は多分文章の様子からお調べになっていると思いますが・・・。一応。)
参考1:http://www.atmarkit.co.jp/fjava/onepoint/svltjsp/svltjsp18.html
参考2:http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
参考3:http://www.atmarkit.co.jp/fjava/rensai3/mojibake02/mojibake02.html

投稿日時 - 2008-03-07 00:26:55

お礼

suirisさん、返信ありがとうございます。
返信に気付くのが遅れてしまいすみません。

問題は解決していないのですが、原因は分かりました。
web.xmlにてエラーコード500のページを指定していると、
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
JSP側のerrorPage="error.jsp"の指定が無視されて、文字化けが発生することがわかりました。
試しにjsp側をerrorPage="unknown.jsp"(unknown.jspは存在しないファイル)としても、エラー発生時にerror.jspの内容が文字化けして表示されました。
そして、web.xml側のerror-pageの指定をコメントアウトすると
JSP側のerrorPageの指定が有効になり、指定したエラーページが文字化けせずに表示されます。

なんなんでしょうね~。。。

投稿日時 - 2008-03-18 16:06:33

あなたにオススメの質問