[python] encode和decode函数说明

字符串编码常用类型:utf-8,gb2312,cp936,gbk等。
1.为了处理英文字符,产生了ASCII码。 
2.为了处理中文字符,产生了GB2312。 
3.为了处理各国字符,产生了Unicode。 
4.为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式。
<h1>Python2中的字符编码</h1>
&emsp;1.Python2中默认的字符编码是ASCII码,也就是说Python在处理数据时,只要数据没有指定它的编码类型,Python默认将其当做ASCII码来进行处理。这个问题最直接的表现在当我们编写的python文件中包含有中文字符时,在运行时会提示出错。Python2会将整个python脚本中的内容当做ASCII码去处理,当脚本中出现了中文字符,比如这里的“小明”,我们知道ASCII码是不能够处理中文字符的,所以出现了这个错误。解决的办法是:在文件头部加入一行编码声明:                            
    
```# -*- coding:utf-8 -*- ```
这样,Python在处理这个脚本时,会用UTF-8的编码去处理整个脚本,就能够正确的解析中文字符了。
2.Python2中字符串有str和unicode两种类型。
总结:
1.Python2中默认的字符编码是ASCII码。 
2.Python2中字符串有str和unicode两种类型。str有各种编码的区别,unicode是没有编码的标准形式。 
3.Python2中可以直接查看到unicode的字节串。
**三、decode()与encode()方法**

前面我们说了这么多都是为了这一节做铺垫,现在我们开始来处理Python2中的字符编码问题。我们首先要学习Python为我们提供的两个转换编码的方法decode()与encode()。

decode()方法将其他编码字符转化为Unicode编码字符。 
encode()方法将Unicode编码字符转化为其他编码字符。
总结:

1.Python2的对于字符编码的转换要以unicode作为“中间人”进行转化。
2.知道自己系统的字符编码(Linux默认utf-8,Windows默认GB2312),对症下药。

在python2中,使用unicode类型作为编码的基础类型。即

       decode              encode

str ---------> unicode --------->str

python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(bytes)但是两个函数的使用方法不变:

     decode              encode

bytes ------> str(unicode)------>bytes

posted @ 2019-05-08 21:36  Moke丶青  阅读(287)  评论(0编辑  收藏  举报