Python3 是如何解决棘手的字符编码问题的?

Python3 最重要的一项改进之一就是解决了 Python2 中字符串与字符编码遗留下来的这个大坑。Python 编码为什么那么蛋疼?已经介绍过 Python2 字符串设计上的一些缺陷: 使用 ASCII 码作为默认编码方式,对中文处理很不友好。 把字符串的牵强地分为 unicode 和 str 两种类型,误导开发者 当然这并不算 Bug,只要处理的时候多留心也可以避免这些坑。但在 ...

more ...

Python 编码为什么那么蛋疼?

据说,每个做 Python 开发的都被字符编码的问题搞晕过,最常见的错误就是 UnicodeEncodeError、UnicodeDecodeError,你好像知道怎么解决,遗憾的是,错误又出现在其它地方,问题总是重蹈覆辙,str 到 unicode 之间的转换用 decode 还是 encode 方法还特不好记,老是混淆,问题究竟出在哪里? 为了弄清楚这个问题,我决定从 python ...

more ...

Python入门最容易犯的错误

Python 以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照 Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写 Python 代码,有一个外国小伙总结了一些大家常犯的错误,16 Common Python Runtime Errors Beginners ...

more ...

分析urllib.unquote乱码的原因

Python中的urllib模块用来处理url相关的操作,unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似"%xx"的字符替换成单个字符,例如:“%E6%B3%95%E5%9B%BD%E7%BA%A2%E9%85%92”解码后会转换成“法国红酒”,但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码“æ³•å›½çº¢é ”。 ...

more ...

PYTHON编码的前世今生

这是我在知乎上回答的一个问题:Python 编码为什么那么蛋疼?,期间收到了不少赞,不过发现我的回答还存在一些误导,于是通过查找资料重新整理了一篇,希望能解答你对编码的困惑。 一旦走上了编程之路,如果你不把编码问题搞清楚,那么它将像幽灵一般纠缠你整个职业生涯,各种灵异事件会接踵而来,挥之不去。只有充分发挥程序员死磕到底的精神你才有可能彻底摆脱编码问题带来的烦恼,我第一次遇到编码问题是写 ...

more ...

理解Python字符集编码

Python编码的前世今生,在python中和字符串相关的类型,分别是str,unicode两种不同的类型: basestring | +--str | +-- unicode 脚本字符编码 脚本字符编码指脚本文件本身是用何种字符编码的,默认情况下Python解释器(解释器就是执行python代码的程序)把脚本当作ascii码来处理: #test.py print "你好" ...

more ...