在python中向字符串追加字节

在python中向字符串追加字节,python,string,bytebuffer,Python,String,Bytebuffer,我将字节数组设置为str并希望发送它(如果我通过调试器查看它,它会显示File.body是str)。因此,我必须创建要发送的消息 request_text += '\n'.join([ '', '--%s' % boundary_id, attachment_headers, File.body, ]) 但仅在尝试加入文件体时,我收到异常: UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in p

我将字节数组设置为str并希望发送它(如果我通过调试器查看它,它会显示
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字符串排序为工作字节字符串?我该怎么破译它呢?但是,如果这不是文本,而是字节,那么如何处理呢。

您可能会遇到错误,因为您的字符串包含非ascii字符。以下是如何对包含非ascii字符的字符串进行编码/解码的示例

1) 将字符串转换为unicode

string=“你好”
u=unicode(字符串“utf-8”)

2) 在将字符串发送到网络之前,将其编码为utf-8

encoded=u.encode('utf-8')

3) 在另一侧将其从utf-8解码为unicode


编码。解码('utf-8')

似乎是unicode。是Python2还是Python3?但调试器将body参数显示为{str}这里的
附件\u头中有什么?什么类型是
边界\u id
?什么类型是
request\u text
'\n.编码('latin-1')。连接([…
工作?@Will:这不会有什么区别。在Python 2中,
'\n'
已经编码。您将字节字符串转换为unicode字符串(隐式解码)然后再次编码回字节字符串。您的代码与问题中的代码有何关系?名为
string
的变量的赋值在哪里?建议对某个未公开的变量应用编码或解码不是很有帮助。我想,由于缺少有关变量中存储的值的相关信息,因此无法回答此问题bles.@ElmoVanKielmo,我想你是对的,但问题后面的注释还是很有帮助的。在他们之前,我看错了方向,搜索字符串+字节追加,在-我检查了所有传入字符串是否为unicode后,找到了一个,修复了,这解决了我的问题。很抱歉,我在早上匆忙发布了此内容。上述内容是为了关于如何对具有unicode字符的字符串进行编码/解码的示例,例如字符串s中的
é
。我将编辑我的响应。