pythonでMySQLにinsertしたいのですが、UnicodeDecodeErrorとなってしまいできません。

r.group(1),r.group(2)は英数の文字列、r.group(3)は日本語の文字列の変数です。

q="INSERT INTO testtable(server_name,d_name,b_name) VALUES ("+r.group(1)+","+r.group(2)+","+r.group(3)+")"
c.execute(q)

実行すると
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 76: ordinal not in range(128)
というエラーが出ます。日本語をasciiで処理してしまってるようなのですが・・・。

わかる方、どう書けばいいか教えてください。

回答の条件
  • 1人2回まで
  • 登録:2009/10/31 02:39:49
  • 終了:2009/11/01 02:19:39

回答(1件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402009/10/31 11:36:27

ポイント60pt

MyNA Web Site

たぶんこのあたりの設定で齟齬が起きてるんだろう。


で、対応としては以下の内容が相当する。

MyNA Web Site

4.1以上対応のアプリケーションには、必ず、mysql_options()でキャラクターセットを指定するようなコーディングをするか、my.cnfを読むようなコーディングにする。"SET NAMES" よりはこの対応の方が良い。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません