我正在编写一个.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编解码器的字符,或者我是否尝试执行不允许的操作?
答案 0 :(得分:13)
在用例中正确编码字符串有两个方面:
要让Python了解您使用的是UTF-8编码,您必须在代码的第一行或第二行中包含类似# coding=utf-8
的行。有关详细信息,请参阅PEP 0263。
您的编辑器也必须使用UTF-8。这需要对其进行配置,具体取决于您使用的编辑器。 Emacs和Vim的配置在同一个PEP中解决,Eclipse可以默认为文件系统编码,它本身可以从您的语言环境设置中派生出来。
答案 1 :(得分:1)
您必须在文件开头添加# -*- coding: XXXX -*-
,将XXXX
替换为编辑器使用的编码以保存源文件;
您使用的是哪种编辑器?你能检查编辑器设置用于保存数据的编码吗?