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

news/2024/7/24 3:47:24 标签: python

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


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

案例

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

clipboard.png

编码建议 显示指明编码

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

二进制模式

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

总结

Unicode 三明治

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

显示编码

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


http://www.niftyadmin.cn/n/1409489.html

相关文章

Test-Driven Development

信奉 Test-Driven Development 的 工程师 鄙视先写 code 再补 tests的工程师 ,先写 code 再补 tests 的工程师鄙视不写 tests 的工程师,不写 tests 的工程师鄙视又他妈乱改需求的 PM 。

js ,javascript数组去重,取最大最小值 ES6

let arr [1, 4, 7, 4, 3, 2, 1, 4, 7];let newArr Array.from(new Set(arr));console.log(newArr); 数组去重 var arr [23, 45, 40, 30, 12];var iMin Math.min(...arr);//最小值var iMAX Math.max(...arr);//最大值console.log(iMin,iMAX);

Ubuntu出现apt-get: Package has no installation candidate问题

今天在安装 vim 的时候出现了 Package vim has no installation candidate的问题 解决方法如下&#xff1a;# apt-get update# apt-get upgrade# apt-get install <packagename> 这样就可以正常使用 apt-get 了&#xff5e; 作者&#xff1a;耑新新&#xff0c;发布于 博…

chrome 免安装_Chrome 骚操作:一键把网页变 APP

使用 Chrome 一键把网页变 APPhttps://www.zhihu.com/video/1091300129138720768APP 的开发成本极高&#xff0c;有时候也会占用比较大的空间&#xff0c;而网页应用在不怎么占用空间的情况下&#xff0c;体验也越来越好。所以有时候&#xff0c;你可以尝试把常用的一些网页变成…

根据数据中某个字段排序

this.logData. sort(this.compare(input_time))compare(property){//数组排序return function(a,b){var value1 a[property];var value2 b[property];//console.log("value1",value1)return value2 - value1;}},

err1130 Host'' is not allowed to connect to this MySQL server

执行sql报错 err1130 Host is not allowed to connect to this MySQL server 我的做法是自己建表&#xff0c;填数据&#xff0c;哈哈哈 一个小时以后。。。。。 悲剧&#xff0c;建了表打不开&#xff0c;报同样的错。 一个小时以后。。。。。。。。。 弄好了&#xff0…

学python对孩子有什么帮助_孩子有必要学习Python吗?如果需要有什么学习建议呢?...

父母之前的人经常问的问题是:孩子需要学习编程吗?学习编程是使用什么?最近,一个经常被问到的问题是:我的孩子需要学习Python现在?我非常高兴的变化问题。有两种主要观点。1. 父母已经逐渐接受了孩子学习编程的问题,他们已经开始觉得他们的孩子应该学习编程,也许他们所学到的…

聊聊springcloud的GatewayControllerEndpoint

为什么80%的码农都做不了架构师&#xff1f;>>> 序 本文主要研究一下springcloud的GatewayControllerEndpoint GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC1-sources.jar!/org/springframework/cloud/gateway/config/GatewayAutoConfiguration.j…