正如其他人所提到的,这是两件事。
,就是告诉Python保存的源文件是utf-8
。Python 2的默认值为ASCII(Python 3的默认值为utf-8
)。这只会影响解释器读取文件中字符的方式。
通常,不管编码是什么,将高unicode字符嵌入文件中可能都不是最好的主意。您可以使用字符串unicode转义,这两种编码都可以使用。
(例如)时u'This is a string'
,它会告诉Python编译器该字符串是Unicode,而不是字节。这大部分由解释器透明地处理。最明显的区别是您现在可以在字符串中嵌入unicode字符(即u'\u2665'
现在合法)。您可以使用from __future__ import unicode_literals
使其成为默认值。
这仅适用于Python 2;在Python 3中,默认值为Unicode,您需要b
在前面指定a (例如b'These are bytes'
,以声明字节序列)。