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

Kat*_*ina 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 = "? ????? ??? ??? ?? ??????? ??, ?? ????????? ?????????!"
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何编码我的文件,以避免在我的文件运行时生成如下所示的语法错误:

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
Run Code Online (Sandbox Code Playgroud)

我已经尝试添加# -*- coding: utf-8 -*-到我的文件的开头,但没有任何运气.我也尝试将我的字符串标记为unicode(即string_en = u'The quick brown fox jumped over the lazy dog."),再次失败.

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

Eri*_*don 13

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

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

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