python - 如何避免一直将字节解码为字符串?

标签 python python-3.x encoding decode

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

最佳答案

默认情况下,Python 2 可以做你想做的事。

但让我建议:这不是人们真正想要的,这就是为什么 Python 3 不会自动执行此操作。

要将bytes转成str,你需要知道bytes的编码:

s = b.decode(编码)

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

b = s.encode(编码)

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

那么,你要做的是:

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

现在utf-8编码是最流行的,如果没有其他要求就用utf-8吧。

关于python - 如何避免一直将字节解码为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51227323/

相关文章:

python - 枕头图像类型错误: an integer is required (got type tuple)

html - 强制 Eclipse 忽略字符编码属性

Python 编码日语字符

python - 如何将 utf-8 字符串显示/转换为正确的符号

python - sphinx 文档中自动模块生成的所有类的目录/列表

Python,多线程太慢,多进程

python - 元类和 __prepare__ ()

python - 如何为模板中的 Django 表单字段赋值?

python-3.x - 删除 Telegram Bot 的回复

linux - Python 3.6; PyQt5;架构Linux;被信号 6 : SIGABRT 中断