Python 2.7 和 Appengine ő/ű 字符显示为 '?'

标签 python mysql sql python-2.7 google-app-engine

我正在使用 mysql 在 google app engine 上用 python 开发一个网站。我的问题是,如果数据库中有字符“ő”或“ű”,渲染会显示错误或显示“?”而不是“ő”或“ű”字符。

我已经尝试将数据库中的排序规则更改为 utf-8latin-1,但结果是相同的。 我还尝试使用 unidecode().decode('latin1').decode('utf8') 并添加我的 .py 行 # -*- 编码: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

最佳答案

解码时无法更改编码类型。即,如果您设置 utf-8 解码类型,编码的 latin-1 字符串不会神奇地变成 utf-8

首先确保您的 mysql 输入为 utf-8。在 mysql 连接字符串中将其设置为 utf-8。还要确保表上的字符集设置为 utf-8 https://dev.mysql.com/doc/refman/5.7/en/charset-applications.html

关于Python 2.7 和 Appengine ő/ű 字符显示为 '?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54783436/

相关文章:

python - argparse:如果设置了标志,则忽略位置参数?

Python socket.recv 异常

mysql 使用 signal/resignal 进行错误处理

sql - 需要处理大型数据集的小子集的方法

c# - 服务器无法生成错误 "The primary key column of type ' DateTime'。”

python - 如何解决 pandas 的错误/功能?

python - 无法在我的脚本中运行循环

mysql - 无法编辑表,因为没有主键,无法创建键,因为有重复值

java - 一个小型项目的java数据库

显示包含列表中所有值的分组行的 SQL 查询