- PR -

Eclipseで文字化け

1
投稿者投稿内容
たかし
常連さん
会議室デビュー日: 2004/10/15
投稿数: 27
投稿日時: 2005-10-30 17:00
Eclipseでstrutsのアプリケーションを動かそうとしています。
以下、環境です。

 Eclipse3.0.1
 Jakarta Tomcat5.0
 Struts1.2.4

JSPのpageタグを利用してcharsetをMS932で設定しても、
以下のエラーが発生します。
 org.apache.jasper.JasperException: サポートされていないエンコーディングです: MS932

文字コードを探りながら設定していくとUTF-8で正常に日本語が表示されました。
<%@ page contentType="text/html; charset=UTF-8" %>

ただ、Tomcatを再起動すると、時々、UTF-8でも日本語が文字化けされます。
原因がわからず、困っています。
根本的な解決方法はないでしょうか??
MS932で表示させたいのですが・・・。
たかし
常連さん
会議室デビュー日: 2004/10/15
投稿数: 27
投稿日時: 2005-11-08 02:06
JSP2.0の仕様を以下のサイトで確認しました。

『Tomcat5 サーブレット/JSP コンテナ Jasper 2 JSP Engine 設定方法』
http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/jasper-howto.html

また、$CATALINA_BASE/conf/web.xmlのコメントに以下のように記述されていました。
<!-- If you get an error reporting that jikes can't use UTF8 encoding, -->
<!-- try setting the init parameter "javaEncoding" to "ISO-8859-1". -->

JavaEncodingを"ISO-8859-1"に変更し、JSPでは以下のように記述していますが、文字化けが発生します。

<%@ page contentType="text/html;charset=ISO-8859-1" %>

また、Windows-31J、MS932、Shift-JISなどに変更すると、以下のエラーが発生します。

org.apache.jasper.JasperException: デフォルトのJavaエンコーディング Shift_JIS はあなたのプラットフォームでは無効です。JspServletの javaEncoding パラメタで、別の値を指定することができます。

JSP2.0の仕様で表示画面が文字化けしない設定方法、記述、参考になるURLなどありましたら、ご教授ください。

#ちなみに、以下のサイトを参考にしてみましたが、うまくいきません・・・
#http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-08 09:04
参考になりますでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=25198

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
matobaa
常連さん
会議室デビュー日: 2002/12/26
投稿数: 21
投稿日時: 2005-11-08 18:34
このページのコラムが非常に役に立ちます。
http://www.atmarkit.co.jp/fjava/rensai2/eclipse03/eclipse03.html

# コラムだけで単独の記事にしてもいいくらいだ
たかし
常連さん
会議室デビュー日: 2004/10/15
投稿数: 27
投稿日時: 2005-11-08 21:59
返信ありがとうございます。
いろんなサイトを調べてみましたが、JSPのコンパイル環境は$CATALINA_BASE/conf/web.xmlでjavaEncodingにWindows-31Jを記述することで文字化けを解消させる旨が書いてありましたが、相変わらずJSPにアクセスする際に以下のエラーが発生します。

-----
org.apache.jasper.JasperException: デフォルトのJavaエンコーディング Windows-31J はあなたのプラットフォームでは無効です。JspServletの javaEncoding パラメタで、別の値を指定することができます。
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:411)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:118)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:191)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
-----
そもそも、クライアントのOSレベルの問題なのでしょうか??
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-11-08 23:21
charsets.jarが参照できていないように思います。以下の現象と同じでしょうか?

http://eclipsewiki.net/eclipse/index.php?Tomcat%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3
たかし
常連さん
会議室デビュー日: 2004/10/15
投稿数: 27
投稿日時: 2005-11-09 22:12
ukさん、返信ありがとうございます。

「ウィンドウ(W)→設定(P)→Tomcat→JVMの設定」よりcharsets.jarを追加したところ、例外、文字化けは回避され、日本語が表示されるようになりました。

助かりました。
ありがとうございました。
1

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