dポイントプレゼントキャンペーン実施中!

文字化けで困っているのですが,通常有名なエンコードをしても直りませんでした。

それで
String enc = System.getProperty("file.encoding");
で表示させたら
EUC-JP-LINUX
とでましたが、この時の
strPar = new String(strPar.getBytes("ISO-8859-1"),"Shift_JIS");
はどうしたらよいのでしょうか?

ちなみに画面は
contentType = "text/html;charset=Windows-31J"
としています。

A 回答 (1件)

サーブレットですか?



リクエストパラメータ取得時の文字化けなのか、
レスポンスにコンテンツを書出す際の文字化けなのかを
まずはっきりさせるべきです。

画面の文字全てが化けているなら、レスポンスへの書出し時
の問題でしょう。

contentType = "text/html;charset=Windows-31J"

は、

contentType = "text/html; charset=euc_jp"

とすべきかもしれません。


リクエストパラメータだけが化けるなら、

strPar = new String(strPar.getBytes("ISO-8859-1"),"Shift_JIS");

ですが、多分 Shift_JIS ではなく、

strPar = new String(strPar.getBytes("ISO-8859-1"),"euc_jp");

でしょう。


ところでサーブレットAPI2.3では、
上記のような方法をとる必要はありません。
サーブレットAPI2.2の環境との互換性が必要なら上記の方法でよいですが、
そうでなければ、

request.setCharacterEncoding("euc_jp");

を、getParameter する前に書いておけばいいです。
    • good
    • 0

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