mysql:5976
From: 福元 政明 <福元 政明 <fukumoto@xxxxxxxxxx>>
Date: Thu, 22 Aug 2002 14:40:02 +0900
Subject: [mysql 05976] Re: JDBC での INSERT と UPDATE で日本語が ? に化けてしまいます
ご指導ありがとうございます。 さっそく実行してみました。 私の理解不足が影響しているせいか、結局 PreparedStatement(入力SQLのSJIS変換なしで) を使ってみたらうまくいきました。 ただ「−」とかの漢字が文字化けするようです。 なぜだろう? ちなみに、gweMysql JDBC Driver に対しても 以下のようにトライしましたが欠局うまくいかずあきらめました。 1、mysql-connector-java-2.0.14.zipをダウンロード 2、解凍したmysql-connector-java-2.0.14-bin.jarをlibに配置 3、接続のClass.forName("com.mysql.jdbc.Driver").newInstance();の部分を変更 ところで質問ですが、なぜ PreparedStatement でうまくいったのか? 私の頭ではピントきません。 よろしければご指導の程お願い致します。 以上 > -----Original Message----- > From: Cold Winter [SMTP:coldwinter@xxxxxxxxxx] > Sent: Thursday, August 22, 2002 12:05 PM > To: ml@xxxxxxxxxx > Subject: [mysql 05975] Re: JDBC での INSERT と UPDATE で日本語が ? > に化けてしまいます > > > SQL のエンコードに「8859_1 → Shift_JIS」の変換を "かけないで"実行してみ > たら > > 「あいうえお」と入力したら「BDFHJ」と帰ってきました。 > > …そうですか…,となると,次の方法で回避することになると思います。 > > 1."gweMysql JDBC Driver"(http://www.t3-jpn.com/jdbc/jdbcmysql.html)を > 使ってみる(過去ログ "[mysql 05893]") > > 2.PreparedStatement を使ってみる(過去ログ "[mysql 05889]") > > 3.MySQL DB エンジンそのものを Shift_JIS でコンパイルしなおす > (過去ログ "[mysql 05900]") > > > > > > ----- Original Message ----- > From: "福元 政明" <fukumoto@xxxxxxxxxx> > To: <ml@xxxxxxxxxx> > Sent: Thursday, August 22, 2002 11:55 AM > Subject: [mysql 05973] Re: JDBC での INSERT と UPDATE で日本語が ? に化け > てしまいます > > > > お返事ありがとうございました。 > > ちなみに、 > > SQL のエンコードに「8859_1 → Shift_JIS」の変換を "かけないで"実行してみ > たら > > 「あいうえお」と入力したら「BDFHJ」と帰ってきました。 > > とりあえずご報告まで。 > > > > > -----Original Message----- > > > From: Cold Winter [SMTP:coldwinter@xxxxxxxxxx] > > > Sent: Thursday, August 22, 2002 11:44 AM > > > To: ml@xxxxxxxxxx > > > Subject: [mysql 05972] Re: JDBC での INSERT と UPDATE で日本語が ? > > > に化けてしまいます > > > > > > 福元さん,はじめまして。 > > > > > > > 接続文字列では、 > > > > jdbc:mysql:///master1?useUnicode=true&characterEncoding=SJIS > > > > UpdateCount = sta.executeUpdate(new > > > > String(p1.getBytes("8859_1"),"Shift_JIS")); > > > > のようにきちんとSJIS変換しているつもりなのですが > > > > INSERTとUPDATEを行うと、「あ」のような日本後全てが「?」となって > > > > データベースに格納されているようです。 > > > > > > …次のような点を考慮してみるとよいかもしれません。 > > > > > > 1.SQL のエンコードに「8859_1 → Shift_JIS」の変換を "かけないで" > > > そのまま実行する > > > > > > 2.DB エンジンの起動状態のうち,キャラクターセットの設定を確認する > > > > > > # 確認方法 > > > > > > "C:\work\> mysqladmin variables" ででてくる表の character_set > > > の行が "sjis" であることを確認する,念の為 character_sets に > > > "sjis" が含まれていることも確認する > > > > > > > > > > > > ----- Original Message ----- > > > From: "福元 政明" <fukumoto@xxxxxxxxxx> > > > To: <ml@xxxxxxxxxx> > > > Sent: Thursday, August 22, 2002 11:38 AM > > > Subject: [mysql 05971] JDBC での INSERT と UPDATE で日本語が ? に化け > てし > > > まいます > > > > > > > > > > 福元と申します。 > > > > 環境は、Win2K + JDK1.4 + TOMCAT4.18です。 > > > > 実はタイトルのような不具合で悩んでおります。 > > > > 処理的には > > > > WEB-INF/lib/mm.mysql-2.0.13-you-must-unjar-me.jar > > > > 接続文字列では、 > > > > jdbc:mysql:///master1?useUnicode=true&characterEncoding=SJIS > > > > UpdateCount = sta.executeUpdate(new > > > > String(p1.getBytes("8859_1"),"Shift_JIS")); > > > > のようにきちんとSJIS変換しているつもりなのですが > > > > INSERTとUPDATEを行うと、「あ」のような日本後全てが「?」となって > > > > データベースに格納されているようです。 > > > > なみに、mysqlコマンドでINSERT文を実行したレコードについては、読み込 > んだ > > > 際に > > > > も○きちんと日本語表示されます。 > > > > なみに、本メーリングリストで紹介されていました「PreparedStatement」 > の動 > > > 作は > > > > まだ検証していません。 > > > > よろしくお願いします。 > > > > > >
-> 5976 2002-08-22 14:40 [福元 政明 <fukumoto@] Re: JDBC での INSERT と UPDATE で日本語が ? に化けてしまいます 5977 2002-08-22 16:09 ┣["Cold Winter" <coldw] 5978 2002-08-22 16:09 ┗[MURAKAMI Tomokazu <t] 5982 2002-08-22 20:01 ┗[Sumito_Oda <oda@xxxx]