编码的由来:
1.为了处理英文字符,产生了ASCII码。
2.为了处理中文字符,产生了GB2312。
3.为了处理各国字符,产生了Unicode。
4.为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式
python2与python3的编码问题:
1.Python2中默认的字符编码是ASCII码。
2.Python2中字符串有str和unicode两种类型。str有各种编码的区别,unicode是没有编码的标准形式。
3.Python2中可以直接查看到unicode的字节串。
4.字节串是指该字符串在python中的标准形式, 字节串是没有编码的
python2如果不声明的话,默认只处理英文,也就是ASCll编码,
所以每一个有ASCll之外的字符的话,都需要在脚本的头部声明 # _*_ utf-8 _*_
编码:
decode()方法将其他编码字符转化为Unicode编码字符
解码:
encode()方法将Unicode编码字符转化为其他编码字符
chardet模块可以检测字符串编码,没有该模块的可以用pip install chardet安装。
win与linux的默认编码:
1.Python2的对于字符编码的转换要以unicode作为“中间人”进行转化。
2.知道自己系统的字符编码(Linux默认utf-8,Windows默认GB2312),对症下药。