Символы Python 2.7 и Appengine ő / ű отображаются как '?' - PullRequest
0 голосов
/ 20 февраля 2019

Я занимаюсь разработкой веб-сайта на python на движке приложений Google с помощью mysql.Моя проблема, если у меня есть символы «ő» или «ű» в базе данных, рендеринг показывает ошибку или показывает «?»вместо символов «ő» или «ű».

Я уже пытался изменить параметры сортировки в базе данных на utf-8 или latin-1, но результат тот же.Я также пытался использовать unidecode(), .decode('latin1'), .decode('utf8') и добавил строку в мой .py # -*- coding: utf-8 -*-, ничего не помогает.иногда я получаю «ошибку декодирования ascii» или «utf8 не может декодировать байт».Лучшее, чего я мог достичь - это «?»знак вместо специальных символов.

this is a sample of my code:
c.execute("""select subject from mytable""")
blogs = []
for (row) in c:
    blogs.append(dict([('azon',row[0])]))
return blogs

если я использую этот, то страница прекрасно отрисовывается

c.execute("""select subject from mytable""")
blogs = []
for (row) in c:
    blogs.append(dict([('azon','ő')]))
return blogs

1 Ответ

0 голосов
/ 20 февраля 2019

Вы не можете изменить тип кодирования при декодировании.то есть закодированная строка latin-1 волшебным образом не становится utf-8, если вы установите utf-8 тип декодирования.

Убедитесь, что ваши входы mysql сначала utf-8.В строке подключения mysql установите значение utf-8.Также убедитесь, что набор символов в таблицах установлен в utf-8 https://dev.mysql.com/doc/refman/5.7/en/charset-applications.html

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