Юникод с пирамидой, SQLAlchemy - PullRequest
0 голосов
/ 01 ноября 2011

Я использую Pyramid и SQLAlchemy, но следующий упрощенный код:

u = u"\u201C"

m = M()
m.comment = u
m.user_id = 1
session.add( m )
session.commit()

дает мне

UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201c' in position 0: ordinal not in range(256)

что мне нужно, чтобы это исправить?

edit:

комментарий - это столбец "MEDIUMTEXT", тип MySQL.

Ответы [ 2 ]

4 голосов
/ 01 ноября 2011

Проверьте, не закодированы ли таблицы вашей базы данных в кодировке, отличной от Unicode.

Кроме того, если вы хотите, чтобы ваши комментарии были доступны для чтения из phpMyAdmin (или того, что вы используете для подключения к вашей БД), вы должны добавить:

? Кодировки = utf8 & use_unicode = 0

к вашей строке подключения в файле конфигурации приложения

так что у вас будет mysql: // user: pass @ localhost / dbname? Charset = utf8 & use_unicode = 0

4 голосов
/ 01 ноября 2011

Скорее всего, ваш comment столбец должен иметь тип Unicode вместо String.

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