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

質問します。

用件: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" %>
となっております。

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

A 回答 (3件)

できればもう少し情報をください。


【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/17 18:18
    • good
    • 1
この回答へのお礼

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

お礼日時:2013/03/25 12:32

SJIS



じゃなくて

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

この回答への補足

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

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

補足日時:2013/03/17 18:15
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/25 12:33

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



も記述してみるとか?

この回答への補足

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

<%@ page pageEncoding="SJIS" %>

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

補足日時:2013/03/12 16:26
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/25 12:33

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