- PR -

ブックマークサンプルについて

1
投稿者投稿内容
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2002-12-13 15:53
こんにちは。ぴろです。またサンプルについて質問があります。。。。
一応一通り同じように動作させることができたのですが、
データベースへの登録が文字化けしてしまいます。
?;{!~などの文字です。
JSPファイルではshift-JISを指定してるので、データベースの関わってこない部分、
(といっても今回のサンプルではほとんど関わってますが。。。)
例えば登録内容の確認画面なんかはきれいに日本語で表示されます。
しかし、データベースへ入ってしまうと、とたんに文字化けしてしまい、次回
データベースから読み出すときは文字化けした状態で読み出されます。

SQLへ登録するときにおそらく文字化けしてるのではないかと思うのですが、
何か対策などはあるのでしょうか?よろしくお願いします。
何か、参考になりそうなページがあったら、そちらの方もお聞かせくださいませんか?
latte
常連さん
会議室デビュー日: 2002/11/07
投稿数: 38
投稿日時: 2002-12-13 16:52
データベースは何をお使いですか?
あと、DB側で設定しているキャラクタセットはどうなっているか、分かりますか?
ひろ
常連さん
会議室デビュー日: 2001/12/13
投稿数: 36
投稿日時: 2002-12-13 18:46
jdkのバージョンは?
1.4.1以降をお使いであれば、Shift_JISではなく、Windows-31Jを使ってみるとどうでしょうか?

[追加]
SJIS、MS932間の問題じゃなさそうな気もするので、、、
コード:

title = new String(title.getBytes("8859_1"), "EUC_JP");


ここの指定はちゃんとできてますか?

ここもOKならやはりDBの設定かも。


[ メッセージ編集済み 編集者: ひろ 編集日時 2002-12-13 19:07 ]
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2002-12-14 01:21
こんばんは。さっそくのレスありがとうございます。
DBのキャラクタ設定の件ですが、サンプルのものとまったく同じものを使用しています。
なので、やはりDBの問題なのでしょうか?
SQL、わかりません。。。。
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2002-12-14 08:07
おはようございます。
JDKのバージョンは1.4.1、tomcatは4.0.2、です。
shift-jis ではなく、 windows-31j という設定方法もあるのですね。
早速試してみようと思います。
DB側(SQL側)のキャラクタコード設定部分というのは
JSP内で決めるものなのでしょうか?
ぴろ
常連さん
会議室デビュー日: 2002/12/12
投稿数: 26
投稿日時: 2002-12-16 11:21
windows31-Jでは対応していないキャラクターコードと出てきました。
>latteさん
DBはPostgreSQLを使っています。
やはり、JSPからSQLへのデータ登録時に文字化けがおきているようです。

なにかヒントなどはありますでしょうか?
ひろ
常連さん
会議室デビュー日: 2001/12/13
投稿数: 36
投稿日時: 2002-12-16 13:32
コード:

52: // 文字コードの変換
53: title = new String(title.getBytes("8859_1"), "EUC_JP");
54: comment = new String(comment.getBytes("8859_1"), "EUC_JP");


すみません。サンプルをちゃんと見ずに回答してしまい。

postgreも全然使ったことないのですが、とりあえずこの2行をDB処理の前に持っていってみるとどうでしょう?
(表示する側のJSPにも同じ処理があると思いますが、そちらははずしてみて下さい。)
あとリクエスト送信元のJSPにShift_JISを使われているなら、変換処理部分も、Euc_JPではなくShift_JISにしておいてください。

このサンプルだとDBにはリクエストで送られてきた文字列をiso-8859-1でunicodeに変換した
ものを使ってDBに反映しています。
表示する際にEuc_JPに変換して表示する方法をとっているようですね。

サンプルのとおりならうまく行くんでしょうが、どうもこの辺りに問題があるのではないかと。
JDBCドライバの違いかもしれません。

なぜこの変換処理が必要かはWeb上でもいろんなところに解説があると思います。
参考までに。
http://www.t3.rim.or.jp/~yoko-k-h/java/servlet/programming/mojibake.html


[ メッセージ編集済み 編集者: ひろ 編集日時 2002-12-16 13:44 ]
1

スキルアップ/キャリアアップ(JOB@IT)