如何使用Django将unicode存储到mysql

时间:2013-06-27 18:53:30

标签: python mysql django unicode

我在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

0 个答案:

没有答案