Python 多语言.py文件的编码

Python 多语言.py文件的编码,python,unicode,encoding,nlp,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 = "В чащах юга жил бы цитрус? Да, но фальшивый экземпля

我正在编写一个.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(即,敏捷的棕色狐狸跳过了懒狗。”),但再次失败

是否可以在一个文件中包含来自不同Python编解码器的字符,或者我正在尝试执行不允许的操作?

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


您使用的是哪种编辑器?能否检查编辑器设置,使用哪种编码来保存数据?

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

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

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


  • “多重编码“这只是一个疯狂的想法。如果您打算使用unicode,那么应该没有问题。只要确保它是一个真正的unicode文件。添加编码声明并使用unicode字符串时会出现什么错误?鉴于存在
    \xc3
    字节,此特定错误似乎表明您的文件是UTF-8编码的。我只是试了一下,也犯了同样的错误。在我脚本的第二行添加了
    #编码:utf-8
    ,修复了它。谢谢大家的建议。我不确定我昨天做错了什么,但包括
    #编码:utf-8
    #-*-编码:utf-8-*-
    今天对我来说很好。仅供参考,我正在使用GNU Emacs 22.1。我的默认编码系统是mule-utf-8[使用缓冲区命令
    C-hc编码找到]。