在Python中将字节追加到字符串
我有一个字节数组,形式是字符串,我想把它发送出去(如果我通过调试工具查看,会发现 File.body
是 str
)。所以我需要创建一个消息来发送。
request_text += '\n'.join([
'',
'--%s' % boundary_id,
attachment_headers,
File.body,
])
但是当它试图连接文件内容时,我收到了一个异常:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
不过,在我参考的这个例子中,它是这样实现的。我应该如何处理Python字符串,使其能正常工作为字节字符串?我需要以某种方式解码它吗?但是如果它不是文本,而只是字节,那该怎么做呢。
1 个回答
0
你可能遇到这个错误是因为你的字符串中有一些非ASCII字符。下面是一个关于如何处理包含非ASCII字符的字符串的例子。
1) 首先,把字符串转换成Unicode格式。
string="helloé"
u=unicode(string, 'utf-8')
2) 在通过网络发送之前,把字符串编码成UTF-8格式。
encoded = u.encode('utf-8')
3) 在接收端,把它从UTF-8解码回Unicode格式。
encoded.decode('utf-8')