Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有Unicode字符的单词不';不会出现在HTML输出中_Python_Django_Utf 8 - Fatal编程技术网

Python 带有Unicode字符的单词不';不会出现在HTML输出中

Python 带有Unicode字符的单词不';不会出现在HTML输出中,python,django,utf-8,Python,Django,Utf 8,我在Python2.7中使用Django 1.7.1,当我尝试将带有尖锐重音(á、é等)的西班牙语字符或元音传递到模板时,整个字符串不会出现在浏览器中(或HTML中)。我已经尝试了立即的解决办法,即 # -*- coding: utf-8 -*- 在myviews.py中,并将 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我的模板index.html是 <!DOCTYPE HTM

我在Python2.7中使用Django 1.7.1,当我尝试将带有尖锐重音(á、é等)的西班牙语字符或元音传递到模板时,整个字符串不会出现在浏览器中(或HTML中)。我已经尝试了立即的解决办法,即

# -*- coding: utf-8 -*-
在my
views.py
中,并将

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我的模板
index.html

<!DOCTYPE HTML>
<html>
<head>
<title>Webpage</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <h1> {{ country }}</h1>
</body>
</html>

网页
{{国家}
浏览器显示一个空的
标记

已解决

我更改了
#-*-编码:utf-8-*-
,改为
#-*-编码:iso-8859-15-*-
,并将
“国家”:u'Perú
改为
“国家”:“Perú”

标签


在模板中没有必要

您的问题是
render_to_response
的第二个参数是作为上下文传递的字典,但您直接在上下文中传递

你可以用两种方法解决这个问题

  • 建议的修复方法是只使用
    渲染
    ,如下所示:

    def main_page(request):
        return render(request, 'index.html', {'country': u'Perú'})
    
  • 如果要使用
    render\u to\u response
    ,则需要限定第二个参数:

    return render_to_response('index.html',
                              context_instance=RequestContext(request,
                                                             {'country': u'Perú'}))
    

  • Django通常非常擅长处理Unicode。我自己并没有时间深入研究这个问题,但有一件事要补充到您的问题中——您到底是如何将非ascii字符传递到模板的?如果为Django模板提供Python Unicode字符串,那么它们应该可以正常工作。我想我还记得它也接受utf-8 bytestrings并检测差异,但我不太确定。你可以添加自己的解决方案作为答案并接受它,以便于将来遇到相同问题的访问者查找。您好,感谢您的回答,不幸的是,我在这两种情况下都遇到了错误(unicode错误)“utf8”编解码器无法解码位置0中的字节0xfa:无效的起始字节(views.py,第15行)您正在使用哪个文本编辑器?您确定views.py文件实际上存储为utf-8吗?
    return render_to_response('index.html',
                              context_instance=RequestContext(request,
                                                             {'country': u'Perú'}))