我有一个文件,我从test
. 此文件为 UTF-8。在我的简单示例中,它仅包含丹麦字母“Ø”。
然后我有一个 Python 脚本,它读取这个文件,在这个例子中,只打印每一行。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import codecs
import sys
filename = sys.argv[1]
f = codecs.open(filename, 'r', 'utf-8')
for lines in f:
print lines
打电话给这个parse.py
。现在,当我./parse.py test
在终端中运行时,我得到以下输出:
Ø
打电话./parse.py test | less
给我:
Traceback (most recent call last):
File "./test.py", line 12, in <module>
print lines
UnicodeEncodeError: 'ascii' codec can't encode character u'\xd8' in position 11: ordinal not in range(128)
我确定我的test
文件是“UTF-8”:
$ file -I test
test: text/plain; charset=utf-8
以及我$LC_TYPE
是 'UTF-8'
我究竟做错了什么?如何让它工作,以便我可以将输出传递parse.py
给下一个命令?