流畅的python读书笔记-第四章 编码问题

处理文本的最佳实践是“Unicode 三明治”


  1. 要尽早把输入(例如读取文件时)的字节序列解码成字符串。
  2. 这种三明治中的“肉片”是程序的业务逻辑,在这里只能处理字符串对象。
  3. 在其余处理过程当中,必定不能编码或解码。
  4. 对输出来讲,则要尽可能晚地把字符串编码成字节序列。

案例

例如,在 Django 中,
视图应该输出 Unicode 字符串;
Django 会负责把响应编码成字节序列,并且默认使用 UTF-8 编码。

clipboard.png

编码建议 显示指明编码

编码默认值的最佳建议是:别依赖默认值
明确指定encodeing编码

二进制模式

除非想判断编码,不然不要在二进制模式中打开文本文件;
即使如此,也应该使用 Chardet,而不是从新发明轮子spa

总结

Unicode 三明治

  • 尽早 字节序列解码成字符串
  • 三明治中的“肉片”是程序的业务逻辑,在这里只能处理字符串对象
  • 尽可能晚地把字符串编码成字节序列

显示编码

别再二进制中打开文本,判断编码应该使用 Chardet

相关文章
相关标签/搜索