在文本文件(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)
答案 0 :(得分:8)
您想使用unicode_escape
编解码器:
>>> x = 'Gro\\u00DFbritannien'
>>> y = unicode(x, 'unicode_escape')
>>> print y
Großbritannien
请参阅the docs,了解作为Python标准库的一部分的大量标准编码。
答案 1 :(得分: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