- - PR -
mysqlの文字化け
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-12 21:40
こんばんは。
mysql4.1とjspを使っています。htmlで表示するときに文字化けが起こって 困っています。 mysqlの設定ではsjisを使っていて、テーブルにはきちんとした日本語が入っています。 しかし、それを取得してブラウザで表示すると、どうしても?????????と、すべて?????として表示されます。 文字化けでも、あまり見られない状態だと思います。 この原因は何かがわからないので、解決方法を教えてください。 よろしくお願いします。 | ||||
|
投稿日時: 2005-12-12 23:42
ちなみに、my.iniは[mysql][mysqld]で,
default-character-set=sjisとしてあります。 | ||||
|
投稿日時: 2005-12-13 01:22
jspがUnicodeを期待しているからでは?
jspの最初に
を入れてみたらどうですかね? しばらくjsp/javaはつかってなくて古い記憶なんで、定かじゃないですが こんなのを入れて解消した記憶があります。 その時は Apache + Tomcat + postgreSQL + jdbc でしたが.. | ||||
|
投稿日時: 2005-12-13 03:01
ありがとうございます。しかし、現在それは書いてあります。
DBからとってくるときに、Systemで表示させてみると、そのときにはすでに?????になってしまっていることを発見しました。 ということはmysqlに問題があると思うのですが、DOSでselectをすると、きちんと日本語で表示されるという不思議な現象です。 | ||||
|
投稿日時: 2005-12-13 08:58
後は取り出した値をこんな変換をかけたかも..
String newValue = new String(orgValue.getBytes("8859_1"), "SJIS")); javaはユニコードで処理するのが前提なので、それをバイト文字列として扱って あげる必要があるとかなんとか、そんなんだったと思います。 あいまいな、回答ですみません。 | ||||
|
投稿日時: 2005-12-13 12:01
うーん。どうも、resultsetに入るときに??????になっているみたいです。
<javaはユニコードで処理するのが前提なので、それをバイト文字列として扱って あげる必要があるとかなんとか、そんなんだったと思います はい。だから、mysqlのstatusで、conn. character-setをみると、そこまでsjisになっているのがいけないのかと思うのですが、上手く変えられません。utf8にしてみたいのですが。 | ||||
|
投稿日時: 2005-12-13 15:25
クライアント側のエンコーディング指定
は接続のしかたでいろいろ では ■JDBC接続 http://www.nihon-eng.co.jp/c-break/TechNote/mysql/MySQL_JDBC.htm まず useUnicode パラメータですが--- 次の characterEncoding パラメータですが、--- | ||||
|
投稿日時: 2005-12-15 00:45
ありがとうございます。あれから、とりあえずODBCをJDBCに変えて、エンコーディングを指定したら、文字化けは直りました。。どうもJDBCやODBCは、不安定ですね。機械との相性が大きいです。
|
1