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


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


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

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

最佳答案

确保已将数据库排序规则设置为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内容的文件测试此代码,以查看是否获得所需的响应。

希望这可以帮助。如果您遇到任何其他错误,请发布它们。
干杯

关于mysql - 字符串值错误:第1行的“文本”列为“\xE0\xB9\x82\xE0\xB8\xA3…”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7840301/

10-09 22:15