【问题标题】:django.http.HttpResponse does not deal unicode properlydjango.http.HttpResponse 不能正确处理 unicode
【发布时间】:2012-05-07 17:22:42
【问题描述】:

按照教程 3,我编写了这个简单的 views.py

# coding = UTF-8
from django.http import HttpResponse

def index(request):
    return HttpResponse( u"Seznam kontaktů" )

我还尝试了其他技巧,例如使用django.utils.encoding.smart_unicode(...)u"%s" % ... 技巧等。

无论我尝试什么,我总是收到“非 ASCII 字符”错误:

SyntaxError at /kontakty/

Non-ASCII character '\xc5' in file C:\Users\JindrichVavruska\eclipse\workspace\ars\src\ars_site\party\views.py 
on line 5, but no encoding declared; 
see http://www.python.org/peps/pep-0263.html for details (views.py, line 5)

更神秘,因为我在其他文件中使用了很多国家字符串,例如models.py,e.g. text = models.CharField( u"Všechen text", max_length = 150),完全没有问题。

我发现此站点上的其他答案无关紧要,建议的更改对我的观点没有影响。py

金德拉

【问题讨论】:

  • 哦,是的,我的 settings.py 中有 DEFAULT_CHARSET = 'utf-8' 行。而且,是的,我在尝试时重新启动了几次开发服务器...... ;-)
  • 这与 Django 或 HttpResponse 无关。
  • 好吧,因为它在所有其他模块和本地化字符串中与 # coding = UTF-8u"..." 一起工作正常,除了使用 HttpResponse 之外,我看不出还有什么不同玩。 :(

标签: django unicode utf-8 django-views


【解决方案1】:

应该是# -*- coding: utf-8 -*- 而不是UTF-8。有关详细信息,请参阅PEP-263。您还应该将文件另存为 UTF-8。检查编辑器的设置。

【讨论】:

  • 好吧,我简直不敢相信你,因为UTF-8models.py 中工作在相同的环境、相同的站点、相同的应用程序中。而我在所有脚本中都使用 UTF-8 的原因正是因为它在文档中是这样写的,而且 utf-8 确实工作。
  • 好吧,你不必相信我,但这就是错误告诉你的。您是否将文件保存为 UTF-8?或者只是声明编码但将它们保存为其他东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
相关资源
最近更新 更多