質問: request.getparameter("aaa") system.out.println(name); でデータを変更せず(しても)jspで送信ボタンを押すとコマンドプロンプトには意味不明の文字列が出てきます 尚、全てのデータを拾うクラス(サーブレット)には request.setcharacterencoding("shift_jis"); jspには <%@page contenttype="text/html; charset=iso-2022-jp" pageencoding="shift_jis" %> をつけています。 開発環境 windowsxp home edition mysql 4.0.26 apache tomcat 4.1 この原因や解決方法が分かれば教えてください。
回答: こんばんは myst_scientist さん まず、はじめに jsp ファイルのコンテンツタイプで 指定している charset は iso-2022-jp ではなくて shift_jis でよいのではないでしょうか? ↓ これです ↓ <%@ page contenttype = "text/html; charset=shift_jis" %> それからサーブレット側で jsp ファイルで入力した 日本語を getparameter() メソッドで取得後、標準 出力などに出力すると文字化けが発生するとのこと ですが、以下のように getbytes() メソッドで変換 して見てください。 string name = request.getparameter("aaa"); string sjisname = new string(name.getbytes("8859_1"), "jisautodetect"); system.out.println(sjisname); "jisautodetect" で正しく shift_jis に変換され ない場合は、"shift_jis" にして見てください。 ↓ ↓ ↓ string sjisname = new string(name.getbytes("8859_1"), "shift_jis"); ※申し訳ありませんが、現在確認できる環境が 手元にないので検証できていません。 参考url:http://www.geocities.jp/shirokaz99/java/java-jsp.html#ghost