扩展模板中的UnicodeDecodeError

时间:2011-03-02 10:31:28

标签: django django-templates

我有base.html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>{% block head.title %}{% endblock %}</title>
    </head>

    <body>
        {% block body.content %}{% endblock %}
    </body>

</html>

和500.html文件:

{% extends "base.html" %}
{% block head.title %}
    500 ł
{% endblock %}

{% block body.content %}
    500 - 
{% endblock %}

当我产生一些错误时,我看不到500ł但

UnicodeDecodeError: 'utf8' codec can't decode byte 0xb3 in position 54: unexpected code byte

当我改变ł到l时,一切都很好。我用eclipse创建了新的html文件。有什么问题?

编辑:

我不能使用任何抛光的diactric字符

2 个答案:

答案 0 :(得分:4)

看起来你的模板文件可能没有被Eclipse保存在utf8中。根据{{​​3}},它会选择您的操作系统的默认编码,这可能不是utf8。

您可以像this bug一样配置Eclipse:

  • 设置全局文本文件编码首选项Workbench&gt;编辑为“UTF-8”。
  • 如果需要UTF-8以外的编码,请在单个文件上设置编码,而不是使用全局首选项设置。要执行此操作,请使用文件&gt;属性&gt;信息菜单选择,用于在单个文件上设置编码。

或者您可以使用&#321;的HTML实体,然后保存文件的编码无关紧要。

答案 1 :(得分:0)

ł不是一个有效的utf8字符,你必须用它的ascii字符引用替换它&#321;

This website有一个有用的ascii代码列表,用于您希望包含在网页中的任何特殊字符。