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