博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python字符串的编码与解码(encode与decode)
阅读量:7138 次
发布时间:2019-06-28

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

首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。

在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。

例如:ljq.py,编码为utf8,包含内容如下:

#-*-coding:utf-8-*- s='中文'print type(s) #查看s的字符类型print s  s.decode('utf8') #解码utf8,默认的编码方式是unicodes.decode('gbk', "ignore") #解码utf8,忽略其中有异常的编码,仅显示有效的编码s.decode('gbk', 'replace')print type(s)print ss.encode('gb2312') ##编码为utf8print type(s)print s

ljq.py编码必需与s.decode('utf8')指定的编码一致,不然会抛出解码异常信息,可以通过s.decode("gbk", "ignore")或s.decode("gbk", "replace")来解决。

另外对于一些包含特殊字符的编码,直接解码可能会报错,可以使用对于的参数来设置。如:

s.decode("utf-8", "ignore") 忽略其中有异常的编码,仅显示有效的编码
s.decode("utf-8", "replace") 替换其中异常的编码,这个相对来可能一眼就知道那些字符编码出问题了。

从unicode转str,被看做是把一个信息文本编码为二进制字节流的过程,要用encode方法

转载地址:http://xhprl.baihongyu.com/

你可能感兴趣的文章
FFmpeg的安装与使用
查看>>
Gartner:2012年大数据HypeCycle
查看>>
nbu备份db2数据库6号错误解决案例
查看>>
【闪存虚拟化】软件定义服务器闪存
查看>>
舍弃才会获取
查看>>
centos 7部署oracle 12c rac 上菜了
查看>>
AndroidManifest.xml文件详解
查看>>
Android架构纵横谈之二—基于性能的考虑(1)
查看>>
【ZooKeeper Notes 4】可视化zookeeper的事务日志
查看>>
zabbix的运行流程图
查看>>
安装并部署DPM 2010服务器
查看>>
MBR与GPT分区格式(实例-创建大于2TB的分区)
查看>>
技术,技术人员,谁是风,谁是草
查看>>
Android应用程序键盘(Keyboard)消息处理机制分析(6)
查看>>
浅谈软件开发定律系列之帕金森定律(Parkinson’s Law)
查看>>
.NET简谈事务、分布式事务处理
查看>>
Windows操作系统的发展历史
查看>>
拆分又遇变数,传赛门铁克或将出售VERITAS,这又是挖的什么坑?
查看>>
UGC“废水”还是“良药”?56、人人"抱团"上路
查看>>
SCCM2012系列之十一,SCCM2012软件更新部署配置
查看>>