包含Unicode字符的源文件导致Django抛出SyntaxError异常
一个UTF-8编码的文件里有一个è
字符(带重音的e),这个字符被放在Python的注释符号里。Django对此字符发出了警告,导致页面无法正常显示。我该怎么解决这个问题呢?
2 个回答
5
你有没有试过在文件里加上 coding
这个头部呢?在第一行,可能是在 shebang 行之后,添加以下内容:
# -*- coding: utf-8 -*-
18
Django 报的这个语法错误已经给你指明了方向。
其实,认真阅读错误信息是很重要的。在你的情况下,错误信息大概是这样的:
文件 /home/zakx/../views.py 的第 84 行有一个非 ASCII 字符 '\xc3',但没有声明编码;详情请查看 http://www.python.org/peps/pep-0263.html(views.py,第 84 行)
如果你去看看 PEP-0263,你会发现有一些方法可以告诉 Python(还有你的编辑器!)你的文件使用什么编码。一般来说,尽量使用 UTF-8 编码。因此,在文件的第一行(如果你用的是 shebang,可以在第二行)写上以下任意一行,就可以告诉 Python 使用 UTF-8 编码来处理这个文件。
# coding=utf8
# -*- coding: utf8 -*-
# vim: set fileencoding=utf8 :