【发布时间】:2016-08-01 10:27:23
【问题描述】:
我试图在模板中显示单词“Año”,但我得到一个空字符串。
我有
# -*- coding: utf-8 -*-
在我的views.py开头
在我看来我已经尝试过了:
unicode(myString)
myString.encode(encoding='UTF-8')
我已经在我的模板中尝试过:
{{n.name|safe}}
这些方法都不适合我。
在我的 mysql 表中,这个词很好。
在我看来,我得到这样的数据:
cursorMYSQL.execute(query)
table_names = cursorMYSQL.fetchall()
在我的模板中:
{%if table_names%}
{% for n in table_names %}
<option value="{{n.name}}" name="{{n.name}}">{{n.name}}</option>
{% endfor %}
{%endif%}
【问题讨论】:
-
django 在显示 unicode 方面没有问题,问题可能与您在上下文中传递
n的方式有关,您应该在视图中展示您是如何做到的 -
请注意,
# -*- coding: utf-8 -*-只是告诉 Python 解析器脚本源的编码使用 UTF-8,这使它能够正确解释脚本本身中的 UTF-8 字符串文字。它对脚本处理 Unicode 的方式没有影响。您可能会发现这篇文章很有帮助:Pragmatic Unicode,由 SO 资深人士 Ned Batchelder 撰写。 -
只是一个问题:为什么直接从 SQL 游标中获取 Django 中的数据?你不使用 ORM?
-
@KlausD。是的,那是另一个故事,长话短说,我被要求这样做,仅此而已。
-
通过使用
unicode()函数,我假设您使用的是 Python 2。您应该始终在 Unicode 问题中提及 Python 版本(最好通过适当的标签) , 因为 Unicode 处理在 Python 2 和 Python 3 之间是完全不同的。
标签: python django python-2.7 character-encoding django-templates