首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将二进制数据转换为Unicode

将二进制数据转换为Unicode
EN

Stack Overflow用户
提问于 2011-02-24 01:59:49
回答 3查看 4.4K关注 0票数 1

在这里提供的所有编码中,http://docs.python.org/library/codecs.html,我应该使用哪种编码将二进制数据解码为unicode,而不会在我将其编码回字符串时损坏?

我用过raw_unicode_data,但它不起作用。

例如:我在帖子中上传图片(但不是作为文件附件)。Django使用utf-8将POST数据转换为unicode。但是,当从unicode转换回字符串(同样使用utf-8)时,数据会损坏。我使用了raw_unicode_data,也发生了同样的事情(尽管这次只有几个字节)。我应该使用哪种编码,以便解码和编码步骤不会损坏数据。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-24 02:07:13

“二进制数据”不是文本,因此将其转换为unicode是没有意义的。如果二进制数据中嵌入了文本,则首先将其提取出来,然后使用数据格式规范中给出的编码进行解码。

票数 3
EN

Stack Overflow用户

发布于 2011-02-24 02:15:58

如果您想发布二进制数据,请使用base64编码。

http://docs.python.org/library/base64.html

票数 7
EN

Stack Overflow用户

发布于 2011-02-24 11:10:07

正如其他人已经说过的,你的问题不是特别清楚。如果您希望通过文本通道(如POST)收集二进制数据,则base64是正确的格式,可用于客户端和服务器中的适当数据转换操作(binary data -> base64 text -> pass over text channel -> base64 text -> binary data)。

或者,如果您希望容忍不正确编码的文本(例如,Python3尝试对某些接口执行此操作,如文件路径和环境变量),则Python3.1及更高版本提供了surrogatescape错误处理程序,它会将无效值转换为无效的可读文本格式,但允许在编码回字节时忠实地重新创建原始二进制数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5094919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档