只要您只是读取和写入文件而不期待任何其他类型的编码输入,那么您就不必做任何特别的事情。
% cat /tmp/u
π is 3.14.
% file /tmp/u
/tmp/u: UTF-8 Unicode text
% cat f.py
f = open('/tmp/u', 'r')
d = f.read()
print d.split()
f.close()
% python f.py
['\xcf\x80', 'is', '3.14.']
当您使用 UTF-8 声明或接受标准输入时,这种情况会发生变化。
% cat g.py
s = 'π is 3.14.'
print s.split()
% python g.py
File "g.py", line 1
SyntaxError: Non-ASCII character '\xcf' in file g.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
要正确处理此问题,请在每个PEP 263的开头声明 Python 程序的编码(由上述SyntaxError
异常引用)。
% cat h.py
# -*- coding: utf-8 -*-
s = 'π is 3.14.'
print s.split()
% python h.py
['\xcf\x80', 'is', '3.14.']