我试图将一些二进制数据附加到python中的字符串文件,当我收到以下错误:
'ascii' codec can't decode byte 0x9d in position 408: ordinal not in range(128)
我的代码如下所示:
binary = 'contains some binary data read from file'
#binary = binary.decode("utf-8")
str = 'packet header data'
packet = str + binary #error here
将二进制数据附加到字符串时出现上述错误。我也尝试过使用编码和解码。
编辑: 解码二进制对象时,我也得到相同的错误。
答案 0 :(得分:0)
解码两者,或以unicode
字面值开头。
str = u'packet header data'
packet = str + binary
答案 1 :(得分:0)
如果这是Python 2.x,则在连接两个字符串时不应该收到该异常。
以下对我来说很好:
binary = '\x9d'
str = 'packet header data'
packet = str + binary
您的错误更可能来自print
语句或写入已在文本模式下打开的文件。