電子書籍の厳選無料作品が豊富!

EclipseでJSP、Servletの開発をしております。
文字化けについての質問なのですが、ブラウザ上で表示される文字が
文字化けしてしまいます。JSPの頭に
<%@page contentType="text/html; charset=SHIFT_JIS"%>
と入れており、ブラウザでもエンコードはShift_JISとなっています。

自分なりに原因を調べたのですが、○○.jsp→○○_jsp.javaに変換?する際に
文字化けしているようで、Eclipse上でJSP、Servletを見ると普通なのですが、
○○_jsp.javaは見事に文字化けしていました。
文字化けした○○_jsp.javaを削除して再度表示(_jsp.javaの再作成)も試みた
のですが、同じ結果でした。

1ヶ月以上触っていないパッケージのソースも突然文字化けを起こしたので
原因も分からない状態です。
原因・直し方がお分かりの方、是非ともご指南下さい。
情報不足でしたら追記させて頂きますので、どうぞ宜しくお願い致します。

A 回答 (3件)

Eclipseの文字コードの設定は、これから作成するファイルに関しては


「ウィンドウ->設定->一般->ワークスペース」で
「テキスト・ファイル・エンコード」にて指定できます。
ただし、これだとすでに作成したファイルの文字コードは変更されないため、
対象ファイルを右クリックし、「プロパティ->リソース」で変更できます。

>テキストエディタで開くと文字化けしていないのに、何故かEclipseで開くと文字化けし、稀に(きっかけは不明だが)ブラウザ(FireFox)上でも文字化けした状態で表示される。

これも上記で設定すれば解決すると思います。
テキストエディタは何を使っているのかわからないですが、テキストエディタ側ではShift-jisで読み込んで、EclipseではUTF-8?で読み込んでいるために起きているのが原因だと思います。

ちなみに、JSPをインクルードする際、インクルードされるJSPに
<%@ page pageEncoding="SHIFT-JIS" %>
を指定しないと文字化けする可能性があります。(インクルードする側とされる側両方にContentTypeをしていすると、される側のContentTypeは無効化され、される側の文字コードを判断する手立てがなくなってしまうため)
    • good
    • 1
この回答へのお礼

ご親切に色々調べて下さり、ありがとうございました。
補足なども含め、参考にさせて頂き解決しました。

まことにありがとうございます。

お礼日時:2009/04/28 16:43

#2です。


すみません。自分で試して見たのですが前の回答だけでは解決しませんでした。

そこで少し調べてみました。
jspからjavaファイルに変換されたものをEclipseで開くと文字化けするのはjavaファイルがUTF-8で作成されているのが原因です。(デフォルトではUTF-8で作成するため)
Windowsで作成していてEclipseの文字コード設定をいじっていない場合はテキスト・ファイル・エンコーディングはMS932もしくはWindows-31Jになっていると思います。

そのため、EclipseではMS932で開こうとしてもファイルはUTF-8なので文字化けが起きてしまいます。
テキストエディタで開いた場合は自動で文字コードを認識しているため文字化けが起きていないのだと思います。

対処方法としては最終的にShift-jisで表示したい場合、それに統一すればいいと思います。

Eclipseの設定は前の回答に書いたとおりです。
あとはTomcatでjspからjavaを作成するときの文字コードを以下のようにして設定します。

%TOMCAT_HOME%\conf\web.xml
<servlet>
<servlet-name>jsp</servlet-name>
======省略======
<load-on-startup>3</load-on-startup>
</servlet>

の箇所に

<init-param>
<param-name>javaEncoding</param-name>
<param-value>Shift-jis</param-value>
</init-param>

を追加します。

何度かやってるうちに文字化けしてしまう現象に関しては試していませんが、おそらくこれで解決すると思います。
    • good
    • 1

Eclipseのテキストファイルエンコードは何ですか?


UTFとかになってませんか?
よくわからなければ、メモ帳でjspファイルを開いて名前をつけて保存のとこにでてくる文字コードがUTFとかになってませんか?
もしそうなら、ファイル自体がSJISでないので、charsetも変更する必要があります。

この回答への補足

早速のご解答ありがとうございます。確かに『メモ帳でjspファイルを開いて名前をつけて保存のとこにでてくる文字コードがUTFとかに』なっていました。
どのように設定するのでしょうか?
また、質問を追記させて頂きます。
>>自分なりに原因を調べたのですが、○○.jsp→○○_jsp.javaに変換?する際に
>>文字化けしているようで…(略

この後気付いたのは、「テキストエディタで開くと文字化けしていないのに、何故かEclipseで開くと文字化けし、稀に(きっかけは不明だが)ブラウザ(FireFox)上でも文字化けした状態で表示される。」
事です。
○○_jsp.javaを削除し、再ビルドしたばかりの時などは、Eclipse上では文字化けしていますが、ブラウザでは正しく表示されたりもします。
何度かやっていくうちにEclipseで見えるような文字化けがブラウザでも出てしまうのです。
現在は単体テスト段階なのですが、_jsp.javaをテキストエディタで表示してエラー部分を確認している状態です。

引き続き何かご存知でしたら、宜しくお願い致します。

補足日時:2009/04/17 19:02
    • good
    • 0
この回答へのお礼

解決への糸口となりました。
ありがとうございました。

お礼日時:2009/04/28 16:44

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