在python文件

时间:2015-10-19 13:18:58

标签: python python-2.7 encoding character-encoding

在列表中我必须使用这样的特殊字符:'ë'和'ç',在python文件中。 我的列表如下:

mylist = ['Deçan','Dragashë','Ferizaj',"Fushë ",'Gjakovë' ]

但我收到错误:SyntaxError: Non-ASCII character '\xc3' in file ...

即使我对它们进行预编码(& euml;对于'ë'),我也会得到同样的错误。我如何使用这些字符?

4 个答案:

答案 0 :(得分:1)

如果要生成字符串,则应使用unicode字符串,或者如果从某处获取字符串,则应将其解码为unicode。

mylist = [u'De\u00E7an',u'Dragash\u00EB',u'Ferizaj',u"Fush\u00EB ",u'Gjakov\u00EB' ]
print mylist[0],mylist[1]

现在您可以使用这些安全编码,根据您的需要进行解码

答案 1 :(得分:0)

这应该有效

#coding: utf-8

mylist = ['Deçan','Dragashë','Ferizaj',"Fushë ",'Gjakovë' ]

此处#coding: utf-8指定文件的编码。

答案 2 :(得分:0)

您的项目编码应为UTF-8。例如,我使用Pycharm并将IDE和prodect编码设置为UTF-8。

mylist = ['Deçan','Dragashë','Ferizaj',"Fushë ",'Gjakovë' ]
for el in mylist:
    print(el)

Deçan
Dragashë
Ferizaj
Fushë 
Gjakovë

答案 3 :(得分:0)

如果您希望使用字符串中的实际字符而不是转义序列,则需要确保正确设置源文件编码。您将看到的大多数建议都会坚持您需要UTF-8编码的文件,但事实并非如此 - 重要的是您在源文件顶部指定的编码是您实际使用的编码。对于Windows,特别是您的PC将配置一个code page,告诉我们默认情况下应该如何将每个字节值转换为一个字符。

在Python中,特殊编码mbcs可用于指定当前的Windows默认代码页。请注意,#coding评论必须是文件的第一行,如果#!是第一行,则必须是第二行。

#coding: mbcs

mylist = ['Deçan','Dragashë','Ferizaj',"Fushë ",'Gjakovë' ]