4

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

我得到的新错误与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 字符时会产生错误...

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

4

3 回答 3

9

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

对我来说有帮助。

于 2012-08-01T19:29:23.990 回答
-1

尝试在此文件的第一行添加一行,如下所示:

#-*- encoding=UTF-8 -*-
于 2012-07-16T09:57:19.463 回答
-1

我通过更改文件解决了这个问题settings.py:不要使用'ENGINE': 'django.db.backends.mysql'.

于 2014-06-29T04:23:06.163 回答