资讯专栏INFORMATION COLUMN

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

leone / 3097人阅读

摘要:处理文本的最佳实践是三明治要尽早把输入例如读取文件时的字节序列解码成字符串。这种三明治中的肉片是程序的业务逻辑,在这里只能处理字符串对象。

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

要尽早把输入(例如读取文件时)的字节序列解码成字符串。

这种三明治中的“肉片”是程序的业务逻辑,在这里只能处理字符串对象。

在其他处理过程中,一定不能编码或解码。

对输出来说,则要尽量晚地把字符串编码成字节序列。

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

编码建议 显示指明编码

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

二进制模式

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

总结 Unicode 三明治

尽早 字节序列解码成字符串

三明治中的“肉片”是程序的业务逻辑,在这里只能处理字符串对象

尽量晚地把字符串编码成字节序列

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41649.html

相关文章

  • 流畅python读书笔记-第十四章-可迭代对象、迭代器和生成器

    摘要:可迭代的对象迭代器和生成器理念迭代是数据处理的基石。可迭代的对象与迭代器的对比从可迭代的对象中获取迭代器标准的迭代器接口有两个方法。此外,也没有办法还原迭代器。最终,函数的定义体返回时,外层的生成器对象会抛出异常这一点与迭代器协议一致。 可迭代的对象、迭代器和生成器 理念 迭代是数据处理的基石。扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项。这...

    kohoh_ 评论0 收藏0
  • 流畅python读书笔记-第一章Python 数据模型

    摘要:第一章数据类型隐式方法利用快速生成类方法方法通过下标找元素自动支持切片操作可迭代方法与如果是一个自定义类的对象,那么会自己去调用其中由你实现的方法。若返回,则会返回否则返回。一个对象没有函数,解释器会用作为替代。 第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成类 import collections Card = collec...

    tomener 评论0 收藏0
  • 流畅python读书笔记-第一章Python 数据模型

    摘要:第一章数据类型隐式方法利用快速生成字典方法方法通过下标找元素自动支持切片操作可迭代方法与如果是一个自定义类的对象,那么会自己去调用其中由你实现的方法。若返回,则会返回否则返回。一个对象没有函数,解释器会用作为替代。 第一章 python数据类型 1 隐式方法 利用collections.namedtuple 快速生成字典 import collections Card = coll...

    FullStackDeveloper 评论0 收藏0
  • 流畅python读书笔记-第十章-继承优缺点

    摘要:继承的优缺点推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架。多重继承的真实应用多重继承能发挥积极作用。即便是单继承,这个原则也能提升灵活性,因为子类化是一种紧耦合,而且较高的继承树容易倒。 继承的优缺点 推出继承的初衷是让新手顺利使用只有专家才能设计出来的框架。——Alan Kay 子类化内置类型很麻烦 (如 list 或 dict)) ,别搞这种 直接子类化内置类型(如 ...

    morgan 评论0 收藏0
  • 流畅python读书笔记-第三章Python 字典与集合

    摘要:小总结标准库里的所有映射类型都是利用来实现只有可散列的数据类型才能用作这些映射里的键值不用字典推导用处理找不到的键找不到键返回某种默认值底层是与调用实现的字典插入更新原理其他大多数映射类型都提供了两个很强大的方法和。 字典和集合 标准库里的所有映射类型都是利用 dict 来实现的只有可散列的数据类型才能用作这些映射里的键(值不用) 可散列 一个对象是可散列的 它的散列值是不变的 对象...

    lvzishen 评论0 收藏0

发表评论

0条评论

leone

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<