mysql:6052
From: "Takashi Yamashita" <"Takashi Yamashita" <takasi@xxxxxxxxxx>>
Date: Mon, 2 Sep 2002 13:08:39 +0900
Subject: [mysql 06052] jdbc: UTF-8 文字列の INSERT
はじめまして、山下高司と申します。
早速質問させていただきます。
PC環境は以下の通りです。
Windows2000
開発環境は以下の通りです。
jbuilder6pro
jdk1.4
relaxer
ドライバは、org.gjt.mm.mysql.Driverです。
サーバのバージョンは、3.23.49-ntです。
jdbcUriに渡すエンコーディングパラメータは、
「?useUnicode=true&characterEncoding=Shift_JIS」
です。
charsetがUTF-8のJSPもしくはhtmlページから送られたrequestを
relaxerクラスに格納し、relaxerTableクラスのinsertメソッドで
データベース内のテーブルにINSERTするプログラムを開発しています。
insertメソッドのコードの一部を以下のように変更したらほとんどの
日本語が格納されるようになりました。
変更前
st.setString(1, USQL.getPropertyAsString(element, "@varAtt"));
:
:
:
st.execute();
変更後
try {
st.setString(1,
new String(
USQL.getPropertyAsString(
element, "@varAtt").getBytes("8859_1"),"UTF-8"));
:
:
:
st.exectute();
}
catch(UnsupportedEncodingException e) {}
しかし、Unicode番号FF0D「-」が上手くDB内に格納されず、
「?」となってしまいます。
原因不明です。
対処方法がございましたらどなたか教えてください。
宜しくお願いします。
------------------------------------------------------
山下高司
takasi@xxxxxxxxxx
-> 6052 2002-09-02 13:08 ["Takashi Yamashita" ] jdbc: UTF-8 文字列の INSERT 6055 2002-09-02 14:39 ┗["Takashi Yamashita" ] 6058 2002-09-02 16:13 ┗["Takashi Yamashita" ] 6061 2002-09-02 17:47 ┗[MURAKAMI Tomokazu <t]