多语言.py文​​件的编码

时间:2011-02-14 17:00:11

标签: python unicode encoding nlp

我正在编写一个.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编解码器的字符,或者我是否尝试执行不允许的操作?

2 个答案:

答案 0 :(得分:13)

在用例中正确编码字符串有两个方面:

  1. 要让Python了解您使用的是UTF-8编码,您必须在代码的第一行或第二行中包含类似# coding=utf-8的行。有关详细信息,请参阅PEP 0263

  2. 您的编辑器也必须使用UTF-8。这需要对其进行配置,具体取决于您使用的编辑器。 Emacs和Vim的配置在同一个PEP中解决,Eclipse可以默认为文件系统编码,它本身可以从您的语言环境设置中派生出来。

答案 1 :(得分:1)

您必须在文件开头添加# -*- coding: XXXX -*-,将XXXX替换为编辑器使用的编码以保存源文件;

您使用的是哪种编辑器?你能检查编辑器设置用于保存数据的编码吗?