学习使用编码和解码

简介:

目的:在处理字符时,如果编码和解码处理不当,就会出现乱码。


环境:ubuntu 16.04   python 3.5.2


情景:因为工作,需要写了一个自动接收邮件并针对特定内容导出到表格的脚本,但收到的邮件源信息一般都是字节信息,需要解码处理,即decode, 如果要发送邮件就需要使用编码encode。


函数:

str.decode('解码方式')

str.encode('编码方式')

这里decode接收字符串,并以指定的解码方式解码,如utf-8或gb2312,encode也是相同的操作。如果给的编码或解码方式错误,则会弹出UnicodeDecodeError:错误,可以用try---except来捕捉处理。


以下:

1
2
3
4
5
def  decode_str(_str):
     try :
         _change_str  =  _str.decode( 'gb2312' )
     except  UnicodeDecodeError:
         _change_str  =  _str.decode( 'utf-8' )

一般微软中文操作系统都是gb2312的。


再写一点枯燥的笔记:

字符编码,早期有美国人发明,定制了ASCII编码,只包含大小写字母、数字和一些符号,这样对其他语言的支持明显不够,中文一般需要两个字节,且不能与ASCII冲突,所以定制了GB2312用于中文,其他国家也有自己的编码,为了统一,Unicode应运而生,包含了所以不同的编码,但是在表示ACSII字符是多加了空的字节,浪费存储和传输,于是有了UTF-8,常见英文用一个字节,汉字通常用3个(Unicode用2个),兼容ASCII。现在传输和存储用UTF-8,内存和服务用Unicode。



参看资料:

第三方博客










本文转自RickyHuL51CTO博客,原文链接:http://blog.51cto.com/rickyh/1952495 ,如需转载请自行联系原作者


相关文章
|
7月前
|
JavaScript 数据安全/隐私保护
41 # 编码的问题
41 # 编码的问题
33 0
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
编码和解码的未来之路
编码和解码的未来之路
|
10月前
|
存储 Java 数据安全/隐私保护
什么是编码和解码
什么是编码和解码
199 0
|
JavaScript
编码
编码
68 0
数制与编码
十进制整数转换为二进制数 可以将十进制数逐次用2除,取余数,一直到商为0.然后把全部余数按相反的次序排列起来。(除二取余)
256 0
数制与编码
|
机器学习/深度学习 算法 索引
关于Onehot编码的总结
关于Onehot编码的总结
536 0
关于Onehot编码的总结
|
Java
编码小结3
java中编码问题
1243 0
|
Java
编码小结2
编码小结2
1263 0