博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习使用编码和解码
阅读量:6582 次
发布时间:2019-06-24

本文共 808 字,大约阅读时间需要 2 分钟。

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

环境: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 ,如需转载请自行联系原作者
你可能感兴趣的文章
Command './js-ant' failed to execute
查看>>
阿里云NFS NAS数据保护实战
查看>>
Spring cloud配置客户端
查看>>
产品研发项目管理软件哪个好?
查看>>
【阿里云北京峰会】一图看懂机器学习PAI如何帮助企业应用智能化升级
查看>>
ansible playbook使用总结
查看>>
Android API中文文档(111) —— MailTo
查看>>
Linux 中如何卸载已安装的软件
查看>>
thinkphp 3.2 增加每页显示条数
查看>>
oracle日常简单数据备份与还原
查看>>
我的友情链接
查看>>
黑马程序员__反射总结
查看>>
Scala学习笔记(5)-类和方法
查看>>
Quartz原理
查看>>
完全卸载oracle|oracle卸载|彻底卸载oracle
查看>>
垃圾收集基础
查看>>
Docker安装及基本命令
查看>>
控制namenode检查点发生的频率
查看>>
Linux存储挂载后,无法正常卸载的解决方法
查看>>
2、递归遍历文件夹下每一个文件
查看>>