2012-06-16 50 views
0

我不确定要搜索什么,所以我希望社区能指引我朝着正确的方向。Django - 文本输入导致在呈现模板时出现奇怪的字符

我在我的网站有一个模型,并带有文本输入。 在这些输入之一,有人复制和粘贴文本

温哥华营销非凡鲍勃·伦尼问“如果它不是一个 泡沫?

从这个链接 http://blog.buzzbuzzhome.com/2012/05/vancouver-marketing-bob-rennie-bubble.html 你会注意到引号和撇号是有一点不同。

对象保存正常。

当模板呈现输出该字段时出现问题。我得到了:

温哥华市场卓越的销售人员鲍勃雷尼问1C如果它19s 不是泡沫?

(注意1C19S在引号和撇号应该是)

我想这可能是一个UTF-8的问题,但我已经有了这顶我html文件

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
+0

“对象保存的很好。”证明给我看。 –

+0

我做到了。没有产生错误,我查看了数据库中的相关条目。 –

回答

0

我想在返回响应之前,您应该先编码unicode字符串。

In [17]: from django.template import Template, Context                             

In [18]: t = Template("{{ text }}") 

In [19]: c = Context({'text': 'Vancouver marketing extraordinaire Bob Rennie asks “What if it’s not a bubble?'})               

In [20]: print t.render(c) 
Vancouver marketing extraordinaire Bob Rennie asks “What if it’s not a bubble? 

In [21]: t.render(c) 
Out[21]: u'Vancouver marketing extraordinaire Bob Rennie asks \u201cWhat if it\u2019s not a bubble?' 

当我写t.render(c).encode('utf-8')一个HTML文件,并添加其他元infomations,它显示enter image description here

+0

啊谢谢!原来,这是因为我使用render_to_string方法的应用程序的特定部分。对输出进行编码将其固定。谢谢。 –

相关问题