から読み取ったファイルがあります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
出力を次のコマンドに渡すことができるようにするにはどうすればよいですか?