Python二进制数据在多部分编码时的ASCII错误

0 投票
2 回答
991 浏览
提问于 2025-04-17 02:57

我正在使用这个食谱来把图片编码成多部分表单数据,以便上传到Twitter。

当我在django的命令行界面运行代码来打包图片时,一切都正常(我用来调试二进制数据的打印语句也能正常工作),但是当我尝试从django命令或者一个更简单的纯Python脚本运行相同的代码时,我总是遇到这个错误:

body = '\r\n'.join(body)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)

那么,为什么只有在运行脚本时会出现这个问题,而在命令行界面却没有呢?

感谢所有能给我解答的人 :)

2 个回答

0

我觉得这个问题和这个问题有关。那里的答案对你有帮助吗?

0

我发现这个问题和我的查询结果有关。结果是以unicode格式返回的,我用这个值来创建我的图片路径,比如:

image_path = "/my/path/%s.jpg" % model.name

model.name 的值类似于 u'model1'。我打印了这些值,并通过老办法(替换 :P)去掉了字符串中的 u' 标记,结果一切正常。

让我感到非常沮丧的是,错误信息指向了 '\r\n'.join,而不是和我的文件名相关的内容。

撰写回答