- 締切済み
jspの文字化けについて
こんばんは。 今日、入力フォームに入れた情報をMysqlに格納するjspを作りました。ボタンを押すとSQLに入るのですが、ここでSQL側で中身を 見てみると文字化けしています。 これを改善する方法をご存知の方ご教授いただけませんでしょうか? また、jspのほうの送信データの文字コードを変更する方法につきましてもご存知の方いらっしゃいましたら アドバイスをお願いいたします。 今はWindows-31Jです。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- choconamacream
- ベストアンサー率44% (152/338)
間にBeanとか使っていませんか?(ソースがないので、当てずっぽですが。) とりあえずは、お勧め過去ログを、と。 「Bean→JSPでの文字化け」 http://oshiete1.goo.ne.jp/qa267793.html 「UTF-8で書かれたJSPの日本語文字コード変換の正しい方法がわかりません」 http://oshiete1.goo.ne.jp/qa2909221.html
- HIRSYU
- ベストアンサー率51% (45/87)
>JSPでゲットパラメータした >時点で文字化けしています。 でしたら、>>ANo.3の文字コード宣言。 tomcat5.x以降を利用の場合はserver.xmlの確認。 この2点で解決する。 だめでしたら、何らかのミスがあるはずなので、JSPのソースコード。及び動作環境を提示してみてはどうでしょうか。
- HIRSYU
- ベストアンサー率51% (45/87)
確認したいのですが、 ・JSPがパラメータを受けた時点で文字化けしている? ・MySQLに保存した時に、MySQL内で文字化けする? どっちでしょうか。 >このときはJSP側もしくはゲットパラメータのところで >どのような処置を >施せばよろしいのでしょうか? JSPではパラメータを受ける時というか、ページの宣言にどの文字コードか指定する必要があります。 宣言の方法は、ANo.1で提示したURLに載ってます。 GETパラメータってことですので、tomcat5.x以降でしたら http://www.javaroad.jp/servletjsp/sj_servlet13.htm にあるように、server.xmlの設定がいるかもしれませんね。
データベースはSJISで作ってあるわけだね? で、JSP側ももちろんSJISになっている? このへんは基本中の基本だからまず再確認。 文字化けの原因はあまりにたくさんあるんで、なんともいえないんだが。例えば、接続の際に明示的にSJISを指定してアクセスするとか。 Connection users = DriverManager.getConnection( "jdbc:mysql://localhost/データベース?characterEncoding=SJIS", "root","hoge"); たとえばこんな具合に、接続先の指定に?characterEncoding=SJISをつけて明示的に文字コードを指定してみる、とかね。 ダメだったら、MySQLはバージョンによっていろいろ設定も微妙に違ったりするから、そのへんの情報も更に書いたほうが回答しやすいだろう。
- HIRSYU
- ベストアンサー率51% (45/87)
「jsp 文字コード」で検索 http://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html このあたりとかどうでしょうか。 たぶん、JSPとMySqlの文字コードが一致していない。 MySqlの設定も見てみましょう。 両方を同じ文字コードを使う方が、文字コードの変換とか不要なので楽です。 (プログラム側の文字コード宣言とかの最低限のコードは必要ですが)
補足
ありがとうございます。 ちょっと質問内容を補足いたします。 JSPで全角文字(日本語)を 入れたときにボタンを押すと、Mysqlに入るのですが そちらでは????となってしまい上手く表示できません。 Mysqlの文字コードはシフトジスで統一してあり動かせないのです。 このときはJSP側もしくはゲットパラメータのところで どのような処置を 施せばよろしいのでしょうか? 重ね重ね申し訳ありません。
補足
JSPでゲットパラメータした 時点で文字化けしています。