Неверное значение строки: «\ xE0 \ xB9 \ x82 \ xE0 \ xB8 \ xA3 ...» для столбца «текст» в строке 1 - PullRequest
0 голосов
/ 20 октября 2011

В моем приложении Django я читаю текстовый файл и загружаю его в виде поля LongText в базе данных mysql. Моя база данных поддерживает кодировку UTF-8, но я получаю следующую ошибку:

Тип исключения: Предупреждение при / загрузить Значение исключения: неверная строка значение: '\ xE0 \ xB9 \ x82 \ xE0 \ xB8 \ xA3 ...' для столбца 'текст' в строке 1

Код, который преобразует его в Unicode в Python, находится здесь:

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

1 Ответ

1 голос
/ 25 октября 2011

Убедитесь, что для вашей сортировки базы данных установлено значение 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, чтобы увидеть, получите ли вы требуемый ответ.

Надеюсь, это поможет.Если вы столкнетесь с какими-либо другими ошибками, пожалуйста, отправьте их.Ура

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...