Python版本:3.5.2
我的代码:
a = b"\xff"
b = a.replace(b"f", b"d")
print(b)
我得到了 b'\xff'。 我尝试了另一种方式。首先,我将字节转换为 str,然后替换字符串。
a = b"\xff"
b = a.decode()
b = b.replace("f", "d")
但通过异常:
Traceback (most recent call last):
File "<input>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
我不知道如何解决 python3 中的问题。 我该怎么办?
请您参考如下方法:
b'\xff' 中没有b"f"。您键入一个“f”来输入b'\xff',但这只是几种输入法中的一种;该值与例如 bytes([255]) 相同。 .replace 只替换字符串中实际存在的字节;它不知道您是如何创建字符串的。
创建字符串后,用于创建它的输入法的详细信息就消失了。你不能做你想做的事情,因为你不能做 '\t'.replace('t', 'n') 来得到 '\n'。 '\t' 不包含“t”;您只需键入“t”作为指定制表符的一种方式。
