Python二进制数据在多部分编码时的ASCII错误
我正在使用这个食谱来把图片编码成多部分表单数据,以便上传到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,而不是和我的文件名相关的内容。