美文网首页python加油站@IT·互联网程序员
关于pyhton2.x中编码问题的一点小理解

关于pyhton2.x中编码问题的一点小理解

作者: 沙子硅 | 来源:发表于2017-10-30 18:34 被阅读100次

欢迎访问个人博客:blog.spursgo.com

关于pyhton2.x中编码问题的一点小理解

大约在一年前,当时接触pyhton爬虫时(那时还是在Windows上开发学习),由于网页中存在大量中文,自然不可避免的会涉及到编码问题。刚刚入门就遇到了python中的一个大麻烦:编码问题,查了一些资料把手上的问题解决之后,就没有去管编码问题了。

一年后,仍然习惯于python2.x。本来在macOS和ubuntu上写得很顺利得一个爬虫程序,转到windows 10上居然出现了大量的乱码。


len.png

从图片中,我们可以可以清楚的看到,一个‘人’字,由于它的类型不一样,当我们取长度时,得到的结果不一样。
现在是不是对字节和字符有了更好的认识了呢?

3. 编码格式的互相转换

decode :解码,实现其他编码格式到unicode的转换
encode :编码,实现unicode到的转换其他编码格式

常见的其他编码格式:utf-8,gbk,gb2312

这是有一个问题我们一定要重视:decode既然是其他编码格式到unicode的转换,达到解码的目的,也就是说unicode本身不是一种编码格式。因此,我们在进行编码与解码的时候,我们要弄清楚,这个被操作的对象是谁?否则,出现编码问题的几率会大大增加。

4. unicode的深刻理解

unicode实际上是一种字符集,神奇之处在于所有语言的字符都用这一种字符集来表示,它是全人类都承认的一种统一标准。unicode映射了各种字符应该用哪种方式来表示,而没有指明具体的传输和储存方式,这个工作是由utf来完成的,如utf-8,utf-16。

5. 编码解码前后的差别

一个str类型的字节串解码后就成了unicode的字符串,相反,一个unicode类型的字符串解码后就成了str的字节串。
以下是我的实验代码:

#coding:utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

country = '中国'
print type(country)
print country
country = country.decode('utf-8')
print type(country)
print country
country = country.encode('gbk')
print type(country)
print country

下面是执行结果:

class.png

实验结果很好的验证了刚刚的结论。

6. 建议

6.1 更改文本编码格式

#coding:utf-8

6.2 更改程序默认编码格式

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

6.3 尽可能的采用unicode作为过渡,输出时编码为需要的编码格式

文/浅斟低唱

相关文章

  • 关于pyhton2.x中编码问题的一点小理解

    欢迎访问个人博客:blog.spursgo.com 关于pyhton2.x中编码问题的一点小理解 大约在一年前,当...

  • 编码

    参考:字符编码常识及问题解析深入分析 Java 中的中文编码问题 关于字符编码,你所需要知道的 编码是什么? 编码...

  • Python3

    关于学习Python编码的一点总结 我认为关于编码这个问题廖雪峰官网上的Python教程写的很好,我从中看了几次,...

  • 关于Python2编码问题的理解

    使用Python2处理中文的时候可能会遇到过这样的问题 其中我的代码是这样的 错误信息提示这一行代码中含有非ASC...

  • 2018-10-16encoding

    encoding 关于中文编码(gb) 这里有几个小技巧:一、在php中,字符编码是按所发送的编码为准的,因此使用...

  • Java编码实验

    为了更好的理解什么时候会出现编码问题,做了小实验。 先在本地写了一个txt文件,使用UTF-8编码。 Java的I...

  • 记录一下python2.7中文数组传入json的问题

    标签: python2.7 编码 python中遇到的至少三分之一的问题,都是编码问题,而且这种问题呀,看起来是小...

  • NSString 编码

    一、澄清 首先澄清一点:NSString 中的字符串对象本身,并不存在编码问题。所提及的编码问题,不是字符串类型本...

  • 关于python中编码与解码的问题

    部分来源于网络整理 一、计算机的编码与解码 探讨编码与解码问题前,首先要知道什么是编码?什么是解码?计算机最终存储...

  • autocomplete --小例

    最近项目使用到autocomplete的功能,使用中关于编码遇到了点问题,这里分享下 AutoComplete控件...

网友评论

    本文标题:关于pyhton2.x中编码问题的一点小理解

    本文链接:https://www.haomeiwen.com/subject/hcjmpxtx.html