質問する
593 次
1 に答える
1
Python 2 (Python 3 ではありません) で wxPython の unicode バージョンを使用していると思います。
str
の結果でコンストラクターを呼び出すときに問題が発生しますself.Text.GetValue()
。
wxPython はあらゆる種類の文字を受け入れ、Unicode 文字列を返します。あなたの例でTextctrl.GetValue()
は、ユニコード文字列を返しますu"2′BR"
str()
デフォルトのエンコーディングである ascii を使用して、文字列に変換してみてください。Ascii は 128 文字しか表現できません。プライム文字 "'" は、ASCII では表されません。そのため、このエラーが発生します。
MySQL データベースのエンコーディングは何ですか? "'" プライムなどの奇妙な文字を使用する場合は、データベースのエンコーディングを utf-8 に設定する必要があります。
次に、次のことができるはずです。
cur.execute("INSERT INTO TKtable (title) VALUES (%s)", (self.Text.GetValue(),))
データベースのエンコーディングに存在しない文字を正常に挿入することはできません。素数 "'" (utf-8 のコード 2032) 素数は、latin-1 には存在しないと思います。
于 2013-02-27T11:57:33.340 に答える