[前][次][番号順一覧][スレッド一覧]

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]