如何避免始终将字节解码为字符串?

时间:2018-07-07 22:16:37

标签: python python-3.x encoding decode

在我的项目中,有些包将值作为字节返回。有一些配置或环境变量需要设置,因此我不需要再次解码字节以字符串形式吗?如果是这样,那是什么?

2 个答案:

答案 0 :(得分:3)

默认情况下,Python 2可以满足您的要求。

但是让我建议:这不是人们真正想要的,这就是为什么Python 3不会自动做到这一点。

要将字节转换为str,您需要知道字节的编码:

s = b.decode(coding)

要将str转换为字节,您还需要知道所需的编码:

b = s.encode(coding)

Python 2假定编码=='ASCII',因此适用于英语/普通ASCII文本,但在运行时引发了其他所有异常。

所以,您要做的是:

  • 确定是将某些内容处理为文本(在这种情况下,使用str)还是二进制(然后保留字节)
  • 提早解码(加载后接收字节)
  • 以str身份处理
  • 后期编码(在保存之前,发送字节)

如今utf-8编码最为流行,因此如果您没有其他要求,请使用该编码。

答案 1 :(得分:1)

不,我不这么认为。这些程序包将如何在其方法中返回值。