Python2和3中关于str和unicode以及UTF-8的更改到底是什么意思?
关注者
14被浏览
5,8972 个回答
Python2.x中:
- str格式本质含义是“某种编码格式”,绝大多数情况下,被引号框起来的字符串,就是str,这时的字符串编码类型,其实就是你Python文件的编码类型,比如在Windows里,默认用的是GBK编码。
- Unicode格式的含义就是“用unicode编码的字符串”。Python在进入2.0版后正式定义了了Unicode字符串这个奇怪的特性,目的就是为了处理太多种语言编码的文本。从那时开始,Python语言中的字符串类型就分为两种:一种是传统的Python字符串(各种花样编码),另一种则是新出现的Unicode。
后来到了Python3.x时代:
- str格式的定义变更为”Unicode类型的字符串“,也就是说在默认情况下,被引号框起来的字符串,是使用Unicode编码的。
- 而“不是Unicode的某种编码格式”,比如UTF-8、GBK,这些编码方式被定义为了bytes,这里的bytes和py2中的str有很多相似的地方。