1

1 つの単語を含むテキスト ファイルを読み込んでいますB\xc3\xa9zier

これを同等のデコードされた utf-8 形式に変換しBézier、コンソールに出力したいと考えています。

私のコードは次のとおりです。

foo=open("test.txt")  
for line in foo.readlines():  
    for word in line.split():  
        print(word.decode('utf-8'))
foo.close()

出力は次のとおりです。

B\xc3\xa9zier

ただし、次のようなことをすると:

>>> print('B\xc3\xa9zier'.decode('utf-8'))

正しい出力が得られます:

Bézier

なぜこれが起こっているのか理解できませんか?

4

1 に答える 1

6

ファイルに未加工の utf8 エスケープ文字列があるようです。string_escape代わりにそれをデコードするために使用します

with open('test.txt') as f:
    for line in f:
        for word in line.split():
            print(word.decode('string_escape').decode('utf-8'))


Bézier
于 2013-06-04T11:11:18.813 に答える