- 论坛徽章:
- 0
|
有一个bytes数据
a = b'abc\xA0\xA2\xF0'
想要将其转换成字串
b = 'abc\xA0\xA2\xF0'
用decode是肯定不行的,会报错
>>> b = a.decode('utf8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 3: invalid start byte
我试着用逐字节的方法
>>> for c in a:
... b = b+chr(c)
...
>>> b
'abc\xa0¢ð'
此时,
>>> len(b)
6
长度仍是6, 但是数据是错的
将其再encode就会发现
>>> b.encode()
b'abc\xc2\xa0\xc2\xa2\xc3\xb0'
各位有没有什么好的办法
|
|