Python: 如何在不解码的情况下将文字字节附加到字符串?

Python: How can I append literal bytes to a string with no decoding?

在Python中,字符串可以有任意字节,通过"\x??"转义。这些字节不一定必须映射到编码中的字符。例如,我们可以有 "\xa0",即使 0xa0 不是一个好的 utf-8 字符。

但是,如果我有一个字节数组,例如 b'\xa0',我无法在不对其进行解码的情况下将其附加到字符串。如果我只想按字面意思追加怎么办,就像 "\xa0"?

如何在不对字符串进行解码的情况下将一系列字节附加到字符串,就像 "\x" 转义字符一样? decode() 是否有“文字解码”或“不解码”选项?如果没有,还有其他方法吗?

首先,考虑将这些存储在字符串中是否真的最适合您的用例。存储为 bytes/bytesarray 通常是更惯用的选项。

但是,如果您考虑了这一点并仍然决定继续,那么您应该将 "latin1" 作为编码选项传递给 bytes.decode。这会将字节直接转换为具有相应值的字符。