Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • 締切済み

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の例外処理機構で呼ばれた時だけ文字化けしているように見えます。解決方法ありますか?

みんなの回答

  • suiris
  • ベストアンサー率68% (17/25)
回答No.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

nives
質問者

お礼

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の指定が有効になり、指定したエラーページが文字化けせずに表示されます。 なんなんでしょうね~。。。

すると、全ての回答が全文表示されます。

関連するQ&A