取消转义 Python 中的双反斜杠序列 3
Unescape double backslash sequences in Python 3
我有这样一个字符串:
'hello this is nice\r\n\xc2\xa0 goodbye'
我需要将其转换为纯 utf-8 文本。
编解码器库没有解决这个问题:
codecs.unicode_escape_decode(x)[0]
'hello this is nice\r\nÂ\xa0 goodbye'
如何将该字符串转换为干净的 utf-8 文本?
不是特别优雅,但这似乎可以满足您的要求。
>>> codecs.unicode_escape_decode(x)[0].encode('latin-1').decode('utf-8')
'hello this is nice\r\n\xa0 goodbye'
有点晦涩的是,Latin-1 编码具有吸引人的 属性,即每个字节都准确编码该字符代码,因此它可用于透明地将 bytes
转换为字符串,反之亦然。
(为了不明显,b'\xc2\xa0'
是U+00A0的UTF-8编码。)
我有这样一个字符串:
'hello this is nice\r\n\xc2\xa0 goodbye'
我需要将其转换为纯 utf-8 文本。
编解码器库没有解决这个问题:
codecs.unicode_escape_decode(x)[0]
'hello this is nice\r\nÂ\xa0 goodbye'
如何将该字符串转换为干净的 utf-8 文本?
不是特别优雅,但这似乎可以满足您的要求。
>>> codecs.unicode_escape_decode(x)[0].encode('latin-1').decode('utf-8')
'hello this is nice\r\n\xa0 goodbye'
有点晦涩的是,Latin-1 编码具有吸引人的 属性,即每个字节都准确编码该字符代码,因此它可用于透明地将 bytes
转换为字符串,反之亦然。
(为了不明显,b'\xc2\xa0'
是U+00A0的UTF-8编码。)