4

在文本文件 (test.txt) 中,我的字符串如下所示:

Gro\u00DFbritannien

阅读它,python 转义了反斜杠:

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

我怎样才能将其解释为 unicode?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 回答