使用管理员:
我可以将这样的字符:«æšʩЖあ☃»
放入文本字段中。
然后,这些字符将在管理侧栏上正确显示为“最近的操作”。
这告诉我,有些django正在查询我的数据库,这些字符正确存储然后正确表示。
使用Views.py 如果我在views.py中执行类似的操作:
var = '«æšʩЖあ☃»'
render_to_response( ... bla bla bla
{'var':var} .. bla bla...)
它在我的网页上正确显示。
然而 在我的django应用程序中,我有一些手动连接进入数据库,如下所示: 的 myscript.py
con = mdb.connect('mysql.server','name','password','mydb')
cur = con.cursor(mdb.cursors.DictCursor)
cur.execute(
"""SELECT * FROM swimsets_swimset"""
)
container = cur.fetchone
myquery = container['column-name']
mylist.append(myquery)
views.py
var = myscript.myfunction() # returns the mylist shown above
render_to_response(...{'var':var}...)
然而,它会将页面上的列表显示为[\ x8890 \ x923 \ etc,\ 1313 \ 23x \ etc] 然后,如果我打印列表中的每个项目,绝对不显示任何内容。
我尝试了什么:
添加:con = mdb.connect('mysql.server','name','password','mydb',use_unicode=True, charset='utf8')
添加:# -*- coding: utf-8 -*-
(对于views和myscript.py)
添加:DEFAULT_CHARSET ='UTF-8'(到settings.py)
我已经阅读了无数的堆栈和大量的文档,但我仍然无法得到它。谢谢,谢谢。 Python Django Encoding Error, Non-ASCII character '\xe5'
如果我这样做: var.decode( 'ISO-8859-1')。编码( 'UTF-8')
它似乎显示了一些奇怪的字符,但它并不是真正的修复。我怀疑这是django如何能够在管理员面板中正确显示各种unicode。
谢谢
答案 0 :(得分:2)
好吧,我讨厌成为回答他自己问题的那个人,但是这个问题已经让我好几天了,我甚至还有另一个堆栈问题,我在它没有回复后删除了。我对希望获得更好帮助的问题有了更清楚的认识,但我已经足够清楚自己调试它了!
让Django显示网页上的特殊字符而不是\ x1231 \ d2314的全部内容是:
将use_unicode=True, charset='utf8
添加到con = mdb.connect('mysql.server','name','password','mydb',use_unicode=True, charset='utf8')
添加:# -*- coding: utf-8 -*-
(对于views和myscript.py)添加:DEFAULT_CHARSET = 'UTF-8'
(到settings.py)
然后最后,将unicode(var)
添加到手动连接到数据库并将查询数据加载到var的myscript.py中。