
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ヶ月以上触っていないパッケージのソースも突然文字化けを起こしたので
原因も分からない状態です。
原因・直し方がお分かりの方、是非ともご指南下さい。
情報不足でしたら追記させて頂きますので、どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
Eclipseの文字コードの設定は、これから作成するファイルに関しては
「ウィンドウ->設定->一般->ワークスペース」で
「テキスト・ファイル・エンコード」にて指定できます。
ただし、これだとすでに作成したファイルの文字コードは変更されないため、
対象ファイルを右クリックし、「プロパティ->リソース」で変更できます。
>テキストエディタで開くと文字化けしていないのに、何故かEclipseで開くと文字化けし、稀に(きっかけは不明だが)ブラウザ(FireFox)上でも文字化けした状態で表示される。
これも上記で設定すれば解決すると思います。
テキストエディタは何を使っているのかわからないですが、テキストエディタ側ではShift-jisで読み込んで、EclipseではUTF-8?で読み込んでいるために起きているのが原因だと思います。
ちなみに、JSPをインクルードする際、インクルードされるJSPに
<%@ page pageEncoding="SHIFT-JIS" %>
を指定しないと文字化けする可能性があります。(インクルードする側とされる側両方にContentTypeをしていすると、される側のContentTypeは無効化され、される側の文字コードを判断する手立てがなくなってしまうため)
ご親切に色々調べて下さり、ありがとうございました。
補足なども含め、参考にさせて頂き解決しました。
まことにありがとうございます。
No.3
- 回答日時:
#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>
を追加します。
何度かやってるうちに文字化けしてしまう現象に関しては試していませんが、おそらくこれで解決すると思います。
No.1
- 回答日時:
Eclipseのテキストファイルエンコードは何ですか?
UTFとかになってませんか?
よくわからなければ、メモ帳でjspファイルを開いて名前をつけて保存のとこにでてくる文字コードがUTFとかになってませんか?
もしそうなら、ファイル自体がSJISでないので、charsetも変更する必要があります。
この回答への補足
早速のご解答ありがとうございます。確かに『メモ帳でjspファイルを開いて名前をつけて保存のとこにでてくる文字コードがUTFとかに』なっていました。
どのように設定するのでしょうか?
また、質問を追記させて頂きます。
>>自分なりに原因を調べたのですが、○○.jsp→○○_jsp.javaに変換?する際に
>>文字化けしているようで…(略
この後気付いたのは、「テキストエディタで開くと文字化けしていないのに、何故かEclipseで開くと文字化けし、稀に(きっかけは不明だが)ブラウザ(FireFox)上でも文字化けした状態で表示される。」
事です。
○○_jsp.javaを削除し、再ビルドしたばかりの時などは、Eclipse上では文字化けしていますが、ブラウザでは正しく表示されたりもします。
何度かやっていくうちにEclipseで見えるような文字化けがブラウザでも出てしまうのです。
現在は単体テスト段階なのですが、_jsp.javaをテキストエディタで表示してエラー部分を確認している状態です。
引き続き何かご存知でしたら、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
SVFの設定について:クラスパス...
-
classファイルについて
-
【Eclipse】パッケージ・エクス...
-
JADで*.jarごとデコンパイルす...
-
Eclipse「リフレッシュ」と「ク...
-
VisualStudioでC++クラスを追加...
-
コンパイルをしようとするとエ...
-
import javax.el.*;について
-
JARのパスの通し方
-
javaクラスファイルをEclipseで...
-
コンパイルした後 java (class...
-
「main メソッドを持つクラスが...
-
jarの分割に関するベストプラク...
-
jdbcドライバのjarファイルにク...
-
Mavenプロジェクトのフォルダ構成
-
java クラスファイルとソースコ...
-
Struts2のプログラムについて
-
JAVAアプレットがブラウザで実...
-
【Eclipse】逆コンパイルでエラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
SVFの設定について:クラスパス...
-
earファイルを展開する方法
-
javaクラスファイルをEclipseで...
-
eclipse でclassesフォルダーが...
-
Eclipse「リフレッシュ」と「ク...
-
ファイルのパスの取得について
-
jdbcドライバのjarファイルにク...
-
【Eclipse】パッケージ・エクス...
-
「main メソッドを持つクラスが...
-
VisualStudioでC++クラスを追加...
-
EclipseでのJSP・Servlet開発に...
-
EclipseでHTTP404エラーが出る。
-
「削除するか、クラスパスの正...
-
java クラスファイルとソースコ...
-
EclipseでのJDBCドライバについて
-
プログラム実行の際に、「ソー...
-
「メイン・マニフェスト属性が...
-
appletviewerが起動しません。
おすすめ情報