こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

servletからjspへの遷移時に文字化け

質問します。

用件:servletからjspに遷移する際に文字化けが発生します。

環境:
Eclipse3.7
java6
ApacheTomcat7.0
フレームワークはなし

内容:
フォワードでTest.jspに遷移します。
RequestDispatcher requestdispatcher = request.getRequestDispatcher("/Test.jsp");
requestdispatcher.forward(request, response);

Test.jspに遷移すると、Test.jspの「<body>テスト</body>」がブラウザ表示時に文字化けします。
(英数字は化けません。)
servletを使用せず、Test.jspに直接アクセスすると文字化けが起きません。
servletで、Test.jspで適当なhiddenを作成し、servletでgetParameterをSystem.out.printしても
文字化けなどはおきません。

また、RequestDispatcherでは文字化けが起こりますが、
response.sendRedirect("/Test.jsp");
だと文字化けがおきません。

現状、sendRedirectとsessionを使用して値の受け渡しを行っておりますが、
RequestDispatcherを使用したいので困っております。

また文字コードは
javaファイルそのものはSJIS
jspは<%@ page language="java" contentType="text/html; charset=SJIS" %>
となっております。

わかりにくい文章で申し訳ありませんが、ご回答の程よろしくお願いします。

投稿日時 - 2013-03-12 15:48:09

QNo.7989723

すぐに回答ほしいです

質問者が選んだベストアンサー

できればもう少し情報をください。
【1】フォワード時のレスポンスヘッダーはどのようになっていますか?
response.getContentType()
で取得できると思います。
ここでShift_JIS(SJIS)でなければ
response.setContentType("text/html; charset=SJIS")
などでセットしてみてください。


【2】「文字化けしている」場合の実際のエンコードは何ですか?
ブラウザで見たとき、エンコードを変えて見られるエンコードがありますか?

【3】[2]で見られるエンコードがあった場合、
<meta http-equiv="content-type" content="text/html; charset=(そのエンコード)" />
などを<head>内に入れてみる。



※ちなみにJavaファイルはたしかすべてUTF-8で処理された気がします。
 Javaファイル中に日本語などの2バイト文字がないので、EclipseさんがSJISと判断しているだけかと。

投稿日時 - 2013-03-14 01:18:09

補足

回答ありがとうございます。

早速試してみたいと思います。
現在、その環境が手元にありませんので、
後日試します!

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

試してみましたら、後ほどご報告させていただきたいと思います。

投稿日時 - 2013-03-17 18:18:30

お礼

後日、確認してみたところ特に何も変えずに、文字化けが直っていました。
ご回答いただいた方、ありがとうございました。
原因などわかったら記述するつもりでしたが、原因が不明で直ってしまったため、
このままとじさせていただきます。

投稿日時 - 2013-03-25 12:32:37

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

SJIS

じゃなくて

Shift_JIS
とか
Windows-31J
にしてみるとか

投稿日時 - 2013-03-12 18:03:23

補足

回答ありがとうございます。

回答内容でいただいた方法はすでに試してみました。
質問に記載しておらずすみません。
ありがとうございました。

投稿日時 - 2013-03-17 18:15:45

お礼

後日、確認してみたところ特に何も変えずに、文字化けが直っていました。
ご回答いただいた方、ありがとうございました。
原因などわかったら記述するつもりでしたが、原因が不明で直ってしまったため、
このままとじさせていただきます。

投稿日時 - 2013-03-25 12:33:00

ANo.1

<%@ page pageEncoding="文字コード" %>

も記述してみるとか?

投稿日時 - 2013-03-12 16:17:16

補足

回答ありがとうございます。

<%@ page pageEncoding="SJIS" %>

<%@ page language="java" contentType="text/html; charset=SJIS" pageEncoding="SJIS"%>
で試してみましたが、特に変化はありませんでした。

投稿日時 - 2013-03-12 16:26:07

お礼

後日、確認してみたところ特に何も変えずに、文字化けが直っていました。
ご回答いただいた方、ありがとうございました。
原因などわかったら記述するつもりでしたが、原因が不明で直ってしまったため、
このままとじさせていただきます。

投稿日時 - 2013-03-25 12:33:12

あなたにオススメの質問