【发布时间】:2011-02-14 17:00:10
【问题描述】:
我正在编写一个 .py 文件,其中包含来自多个字符集的字符串,包括英语、西班牙语和俄语。例如,我有类似的东西:
string_en = "The quick brown fox jumped over the lazy dog."
string_es = "El veloz murciélago hindú comía feliz cardillo y kiwi."
string_ru = "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!"
我无法弄清楚如何对我的文件进行编码以避免在我的文件运行时产生如下语法错误:
SyntaxError: Non-ASCII character '\xc3' in file example.py on line 128, but no encoding
declared; see http://www.python.org/peps/pep-0263.html for details
我尝试将# -*- coding: utf-8 -*- 添加到我的文件开头,但没有任何运气。我也尝试将我的字符串标记为 unicode(即string_en = u'The quick brown fox jumped over the lazy dog."),但再次失败。
是否可以在一个文件中包含来自不同 Python 编解码器的字符,或者我是否正在尝试做一些不允许的事情?
【问题讨论】:
-
“多重编码”只是一个疯狂的想法。如果您打算使用unicode,那么应该没有问题。只要确保它是一个 unicode 文件。添加编码声明并使用 unicode 字符串时会出现什么错误?
-
这个特定的错误似乎表明您的文件是 UTF-8 编码的,因为存在
\xc3字节。我刚刚尝试并得到了同样的错误。添加# coding: utf-8在我的脚本的第二行修复了它。 -
感谢大家的建议。不知道我昨天做错了什么,但今天包括
# coding: utf-8或# -*- coding: utf-8 -*-对我来说都很好。仅供参考,我使用的是 GNU Emacs 22.1。我的默认编码系统是 mule-utf-8 [使用缓冲区命令C-h C coding找到]。
标签: python unicode encoding nlp