Как я могу заставить Django выводить плохие символы вместо возврата ошибки - PullRequest
2 голосов
/ 22 января 2009

В моей базе данных есть странные символы, которые, кажется, портят django при возврате страницы. Я получаю эту ошибку:

TemplateSyntaxError at /search/legacy/

Caught an exception while rendering: Could not decode to UTF-8 column 'maker' with text 'i� G�r'

(фактический текст немного отличается, но так как это название компании, я изменил его)

как я могу получить django для вывода этого текста? В настоящее время я работаю на сайте из sqlite (fast dev), это проблема?

Также, на совершенно не связанной ноте, возможно ли использовать представление базы данных?

спасибо

Ответы [ 3 ]

1 голос
/ 22 января 2009

Вероятно, нет.

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

0 голосов
/ 22 января 2009

Это немного сбивающее с толку сообщение об ошибке, и, не зная более подробной информации, я не понимаю, в чем причина проблемы (сообщение об ошибке, выражающее «decode to UTF-8», кажется неправильным, как обычно, вы бы кодировать в UTF-8). Возможно, Django ожидает найти данные в какой-то другой кодировке и пытается декодировать их и перекодировать как UTF-8, но задыхается от некоторых символов, которые недопустимы для ожидаемой кодировки?

В общем, вы хотите убедиться, что вы храните UTF-8 в своей базе данных, и что вы внутренне используете объекты Unicode (не объекты str) везде в вашем коде.

Некоторое другое чтение, которое может быть полезным:

0 голосов
/ 22 января 2009

У меня есть связанная проблема с владельцем сайта, который использует Apple iPages для создания статьи, а затем выполняет копирование-вставку в текстовое поле администратора Django. Этот процесс создает «забавные символы», которые портят Django и / или MySQL (вы не поверите количеству символов в двойных левых / правых кавычках). Я не могу «исправить» клиента, поэтому у меня есть функция, которая ищет известную странность и переводит ее во что-то полезное раньше. Полная PITA.

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