mysql - Django 和 MySQL unicode 错误

标签 mysql django utf-8

我得到一个 不正确的字符串值(异常值:不正确的字符串值:'\xEA\xB0\x95\xED\x95\x98...' 对于第 1 行的列 'object_repr') 尝试在 Django 和 MySQL 中保存 unicode 字符串(韩语)时出错。我遇到的第一个问题是数据库表中每一列的“字符串值不正确”错误。但是,我通过更改列排序规则和整个数据库字符集来解决这个问题。

我得到的新错误与 models.py 中的 unicode(self) 方法有关。我的 models.py 如下:

from django.db import models

# Create your models here.
class User(models.Model):
full_name = models.CharField(max_length=60)
email = models.EmailField(unique=True)
password = models.CharField(max_length=128)
birthday = models.DateField(null=True, blank=True)
gender = models.PositiveIntegerField(null=True, blank=True)
location = models.CharField(max_length=60, null=True, blank=True)
captcha = models.CharField(max_length=60, null=True, blank=True)

register_date = models.DateTimeField()
lastLogin_date = models.DateTimeField(null=True)
num_logins = models.PositiveIntegerField()

def __unicode__(self):
    return self.full_name

__unicode__ 函数试图输出 utf8 字符时产生错​​误...

有人知道如何解决这个错误吗?

最佳答案

在MySQL控制台执行

ALTER DATABASE django_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE django_admin_log MODIFY object_repr VARCHAR(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;

对我来说这很有帮助。

关于mysql - Django 和 MySQL unicode 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11497744/

相关文章:

php - 获取非对象的属性错误

php - 使用 PHP session 验证用户名

django-多语言和模板端语言之间的切换

python - 单击按钮后更改模型字段值

python - '# -*- coding: utf-8 -*-' 也是 Python 中的注释吗?

php - 从数据库中获取最新值,检查值并在 PHP 中应用自身

PHP 更新查询日期未插入?

python - 将日期时间字段转换为特定时区

php - Symfony2+学说 : How to convert iso8859-1 to utf-8 and viceversa?

python - 语法错误 : Non-UTF-8?