如何在字符串中替换这些字符:r'\xb0' 与 r'\260',我尝试过这样做:
test = u'\xb0C'
test = test.encode('latin1')
test = test.replace(r'\xb0', r'\260')
但它不起作用。问题是,我必须将数据以八进制格式(例如'\260C')而不是十六进制格式等写入文件。
你的意思是
>>> test.encode('unicode-escape').replace(r'\xb0', r'\260')
'\\260C'
或者
>>> ''.join('\\%o' % ord(c) for c in test)
'\\260\\103'
或最慷慨的方法(结果实际上是 OP 要求的)
>>> table = {i: unicode(chr(i)) if 32 <= i < 128 else u'\\%o' % i for i in range(256)}
>>> u'\xb0ABD\260'.translate(table)
u'\\260ABD\\260'