• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JSPからパラメータを取得してサーブレットに遷移する際文字化けしてしまいます。)

JSPからパラメータを取得してサーブレットに遷移する際文字化けする問題

このQ&Aのポイント
  • JSPからパラメータを取得してサーブレットに遷移する際に文字化けする問題があります。
  • 突然文字化けが発生し、参考書に書かれている内容を試しても解決しない状況です。
  • エンコード・デコードのミスが原因と思われますが、具体的な解決策がわかりません。どなたかご指導お願いいたします。

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

  • ベストアンサー
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

拙者宅の環境でテストすると、 ●ケース1 > useBodyEncodingForURI="true" を記述した場合、 EchoServlet2クラスにて受け取れるパラメータが既にUnicodeに エンコーディング済みになってましたよ。 ですから、Unicodeパラメタに > request.setCharacterEncoding("Windows-31J"); とすると、当然文字化けしました。(UnicodeはWindows-31Jじゃないですからね) ●ケース2 > useBodyEncodingForURI="true" を指定しない場合には、EchoServlet2クラスにて受け取れるパラメータはWindows-31J となっています。 ですから、 > request.setCharacterEncoding("Windows-31J"); を使って、正しくエンコーディング出来ました。 確認環境: Windows2000Pro JDK1.6.0_04 Tomcat5.5.12 Firefox2.0,0.17

halloblue
質問者

お礼

ありがとうございます! いただいたアドバイスをもとに、 試行錯誤を繰り返した結果、文字化け解消しました! おっしゃっていた、 useBodyEncodingForURI="true" を消して、コンテントタイプの指定とエンコーディングのおいてあった場所をちょこっと変えただけで出来ました!! ご指導ありがとうございました。

halloblue
質問者

補足

お返事ありがとうございます! >> useBodyEncodingForURI="true" >を指定しない場合には、EchoServlet2クラスにて受け取れるパラメー>タはWindows-31J >となっています。 >ですから、 >> request.setCharacterEncoding("Windows-31J"); >を使って、正しくエンコーディング出来ました。 ということは、useBodyEncodingForURI="true" の一文を削除すれば、環境の違いこそあれ、表示されるかもしれないということでしょうか? 最初それが記述していない状態でできなくて、その後で記述したのですが、ひょっとしてやらないほうが良かったんでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A