0

Django (1.4) モデルにテキスト フィールドがあり、MySQLdb を使用して MySQL にレコードを保存しようとしています。

MySQL は UTF-8 文字セットを使用しています。

Unicode 文字列を保存しようとしています:

u"\u2019"

Django で Unicode を使用して、ストレージ用に自動的に UTF-8 に変換できることを期待していました。

ただし、次のエラーが表示されます。

*** UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position *: ordinal not in range(128)

保存する前に文字列を手動で UTF-8 にエンコードすると、エラーを修正できることに気付きました。

mystring.encode("utf-8")

足りないものはありますか?

編集: コード例

ここにモデルがあります:

class MyModel(models.Model):
    textfield = models.TextField()

> mystring = u'\u2019'
> print mystring
’
> MyModel(mystring).save()
*** UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 1: ordinal not in range(128)
> MyModel(mystring.encode("utf-8")).save() #this instead works
4

0 に答える 0