こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQLの文字化け

Win XP
MySQL4.0.13
TOMCAT4.1
APACHE2
以上を使用して自宅にて開発を行っております。


HTMLページより入力されたデータをjspファイルへ渡し、jspファイル内へ記述されたSQL文によりデータベースへの書き込みを試みております。

データベースへの書き込み自体はできるのですが、文字化けで困っています。
書き込み後、プロンプトよりselect文で確認すると、日本語のみ文字化けし、アルファベットは大文字が小文字にところどころなってしまいます。数字は問題ありませんでした。

具体的には「あいうえお」が「BDFHJ」に文字化けしていました。

MySQLのコンソールのMY.ini Setuoタブに
[mysqld]
default-character-set=sjis

[mysql]
default-character-set=sjis
と指定しており、HTML,jspファイル内でもshift-jisを指定しております。

ご教授よろしくお願いしたします。

投稿日時 - 2004-12-20 03:23:40

QNo.1134349

困ってます

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

こんにちは。

MySQLは問題なし。
OSも問題なし。
HTML、JSPも問題なし。

>>jspファイル内のrequest.setCharacterEncoding("SHIFT_JIS");をコメントアウトしたところ、データベースへの書き込みは正常にできましたが

これが意味不明???
JSP内でエンコーディングしてたんですか?

後はserver.xmlにある、jdbc:mysql://~・・・を見てください。
ApacheとTomcatのデフォルトは問題ないですよね?
それから、サーブレット内で変換したらどうなりますか?
例えば、
str = new String(str.getBytes("ISO-8859-1"), "JISAutoDetect");
文字化けするstrを一度変換してみる。

多分最後のやつで解決しそうですが・・・?
(^^ゞ

投稿日時 - 2004-12-22 12:24:58

お礼

お礼が遅くなり申し訳ありません、問題解決致しました。ありがとう御座いました。

投稿日時 - 2004-12-25 20:35:15

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

データベースに保存されたデータは文字化けしていませ
んか?

Apacheを利用したことがありませんので、jk2等の設定
に関して分かりませんが、html(jsp)、jdbc、db-client
、db-serverのキャラクタセットを全てあわせなければ
文字化けになってしまいます。

投稿日時 - 2004-12-21 10:24:47

補足

ご指摘ありがとうございます。

当初データベースへの書き込みが文字化けしていたのですが、jspファイル内の
request.setCharacterEncoding("SHIFT_JIS");
をコメントアウトしたところ、データベースへの書き込みは正常にできましたが、同ファイル内でHTMLによる表示の際に文字化けが発生するようになっていしまいました。
以前とは逆になってしまったのです。

db-client、db-serverについてですが、apache等も含めすべて一台のマシン上で行っております。db-client、db-serverのキャラ設定を合わせるというのは、ファイル内での指定という事でしょうか?それともMysql自体の設定が他に必要なのでしょうか?

よろしくお願いいたします。

投稿日時 - 2004-12-21 22:20:41

ANo.1

こんにちは。

後考えられるのは、JAVA側のエンコーディング設定だと思われますが・・・。
ApacheとTomcatはどうですか?
(^^ゞ

投稿日時 - 2004-12-20 10:48:28

補足

ご指摘ありがとうございます。

jspファイル内での
request.setCharacterEncoding("SHIFT_JIS");
をコメントアウトしたところ、データベースには正常に書き込みできるようになりました。

しかし同じjspファイル内にHTMLを記述し、書き込み内容を表示させていたのですが、今度はそれが文字化けしてしまうようになりました。
Mysql,HTMLファイルではShift_JISを指定し、jspファイル内においても
<%@ page contentType="text/html; charset=Shift_JIS"%>
のようにすべてShift_JISで指定しているのですが、ほかに何か原因は考えられるでしょうか?
引き続きよろしくお願いいたします。

投稿日時 - 2004-12-21 22:04:03