0
4

1 に答える 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 に答える