我有一个文件,我从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给下一个命令?