dポイントプレゼントキャンペーン実施中!

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を指定しております。

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

A 回答 (3件)

こんにちは。



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を一度変換してみる。

多分最後のやつで解決しそうですが・・・?
(^^ゞ
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/12/25 20:35

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


んか?

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

この回答への補足

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

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

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

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

補足日時:2004/12/21 22:20
    • good
    • 0

こんにちは。



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

この回答への補足

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

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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!