在Python中将unicode数据附加到字符串

时间:2015-09-08 06:10:26

标签: python encoding utf-8

我试图将一些二进制数据附加到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

将二进制数据附加到字符串时出现上述错误。我也尝试过使用编码和解码。

编辑: 解码二进制对象时,我也得到相同的错误。

2 个答案:

答案 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语句或写入已在文本模式下打开的文件。