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
。这会将字节直接转换为具有相应值的字符。
在Python中,字符串可以有任意字节,通过"\x??"
转义。这些字节不一定必须映射到编码中的字符。例如,我们可以有 "\xa0"
,即使 0xa0 不是一个好的 utf-8 字符。
但是,如果我有一个字节数组,例如 b'\xa0'
,我无法在不对其进行解码的情况下将其附加到字符串。如果我只想按字面意思追加怎么办,就像 "\xa0"
?
如何在不对字符串进行解码的情况下将一系列字节附加到字符串,就像 "\x"
转义字符一样? decode()
是否有“文字解码”或“不解码”选项?如果没有,还有其他方法吗?
首先,考虑将这些存储在字符串中是否真的最适合您的用例。存储为 bytes/bytesarray 通常是更惯用的选项。
但是,如果您考虑了这一点并仍然决定继续,那么您应该将 "latin1"
作为编码选项传递给 bytes.decode
。这会将字节直接转换为具有相应值的字符。