字符串值不正确:'\ xE0 \ xB9 \ x82 \ xE0 \ xB8 \ xA3 ...'代表第1行的'text'列

时间:2011-10-20 18:17:48

标签: mysql django

在我的Django应用程序中,我正在读取一个文本文件并将其作为LongText字段上传到mysql数据库中。我的数据库支持UTF-8编码,但是我收到以下错误:

  

异常类型:/ upload上的警告异常值:字符串不正确   值:'\ xE0 \ xB9 \ x82 \ xE0 \ xB8 \ xA3 ...'用于第1行的“text”列

将它转换为python中的unicode的代码在这里:

fileobj = self.request.FILES.get('filepath', None)
filetext = unicode(fileobj.read(), 'utf-8') 
uploadedText = models.UploadedText()
uploadedText.text = filetext uploadedText.save()

1 个答案:

答案 0 :(得分:1)

确保已将数据库排序规则设置为utf8_general_ci,并且您的UploadedText模型如下所示:

class UploadedText(models.Model):
  text = models.CharField(max_length=500)

然后试试这段代码:

fileobj = self.request.FILES.get('filepath', None)
filetext = fileobj.read() 
uploadedText = models.UploadedText()
uploadedText.text = filetext 
uploadedText.save()

如果文件内容已经是unicode,则无需将文件内容显式转换为unicode 。还要测试此代码以查找仅包含ascii内容的文件,以查看是否获得了所需的响应。

希望这会有所帮助。如果您遇到任何进一步的错误,请发布它们。 干杯