4

テキスト ファイル (test.txt) では、文字列は次のようになります。

Gro\u00DFbritannien

それを読むと、python はバックスラッシュをエスケープします:

>>> file = open('test.txt', 'r')
>>> input = file.readline()
>>> input
'Gro\\u00DFbritannien'

これをユニコードとして解釈するにはどうすればよいですか? decode()そしてunicode()仕事をしません。

次のコードはファイルに書きGro\u00DFbritannien戻しますが、Großbritannien

>>> input.decode('latin-1')
u'Gro\\u00DFbritannien'
>>> out = codecs.open('out.txt', 'w', 'utf-8')
>>> out.write(input)
4

2 に答える 2

9

unicode_escape次のコーデックを使用します。

>>> x = 'Gro\\u00DFbritannien'
>>> y = unicode(x, 'unicode_escape')
>>> print y
Großbritannien

Python 標準ライブラリの一部として提供される膨大な数の標準エンコーディングについては、ドキュメントを参照してください。

于 2010-05-11T14:11:33.123 に答える
4

組み込みの「unicode_escape」コーデックを使用します。

>>> file = open('test.txt', 'r')
>>> input = file.readline()
>>> input
'Gro\\u00DFbritannien\n'
>>> input.decode('unicode_escape')
u'Gro\xdfbritannien\n'

以下も使用できますcodecs.open()

>>> import codecs
>>> file = codecs.open('test.txt', 'r', 'unicode_escape')
>>> input = file.readline()
>>> input
u'Gro\xdfbritannien\n'

標準エンコーディングのリストは、Python ドキュメントで入手できます: http://docs.python.org/library/codecs.html#standard-encodings

于 2010-05-11T14:07:25.213 に答える