アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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 …
参考2:http://www.ingrid.org/java/jserv/i18n/corruptedc …
参考3:http://www.atmarkit.co.jp/fjava/rensai3/mojibake …
    • good
    • 0
この回答へのお礼

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!