• 締切済み

EUC-JP-LINUXの文字化け

文字化けで困っているのですが,通常有名なエンコードをしても直りませんでした。 それで 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" としています。

みんなの回答

  • Harry_
  • ベストアンサー率55% (36/65)
回答No.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 する前に書いておけばいいです。