Python中的编码(encode)与解码(decode)
来源:互联网 发布:淘宝粉丝红包 编辑:程序博客网 时间:2024/06/05 07:11
首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。
在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。
例如:test.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
另外对于一些包含特殊字符的编码,直接解码可能会报错,可以使用对于的参数来设置。如:
s.decode("utf-8", "ignore") 忽略其中有异常的编码,仅显示有效的编码
s.decode("utf-8", "replace") 替换其中异常的编码,这个相对来可能一眼就知道那些字符编码出问题了。
扩展:
判断是 s 字符串否为Unicode,如果是返回True,不是返回False :
isinstance(s, unicode)
获取和修改系统默认编码:
import sysprint sys.getdefaultencoding()reload(sys)sys.setdefaultencoding('utf8')print sys.getdefaultencoding()
原文链接:http://www.cnblogs.com/linjiqin/p/3674825.html
0 0
- Python中的编码(encode)与解码(decode)
- Python中的decode解码和encode编码
- 编码&解码(encode & decode)
- python的编码问题|encode(编码)decode(解码)
- Python字符串的编码与解码(encode与decode)
- Python字符串的编码与解码(encode与decode)
- Python字符串的编码与解码(encode与decode)
- python中的decode解码和encode编码使用
- Python编码解码问题 encode decode
- 编码格式(UTF-8 与 ANSI)各种编码解码(encode、decode)
- python 编码乱码问题(decode,encode)
- js 中编码(encode)和解码(decode)方法 .
- js 中编码(encode)和解码(decode)方法
- python decode()、encode() 、编码与反编码
- Python中的字符编码问题encode/decode
- python中的编码问题unicode, encode, decode
- URL解码(Decode)/编码(Encode)
- URL解码(Decode)/编码(Encode)
- HTTP请求头部+响应码
- 《蔡康永的说话之道》读书笔记
- Java+MySql图片数据保存与读取的具体实例
- 傅立叶分析和小波分析之间的关系(通俗解释)
- android知识总结--Fragment
- Python中的编码(encode)与解码(decode)
- 获取当前操作系统的桌面路径(适用于Windows操作系统)
- file与管道符
- 【java】JDK 和Tomcat 环境变量的配置
- 数据分析实例--兰州二手房数据分析(一)
- 火爆朋友圈的柏拉图性格标签生成器源码下载
- Android基础
- Android UI设计(引导界面):ViewPager之三PagerTabStrip与PagerTitleStrip添加标题栏的区别
- mybatis笔记