python编码格式
2016-04-10 12:07
721 查看
python编码总结:
1).首先python有两种格式的字符串,str和unicode,其中unicode相当于字节码那样,可以跨平台使用。
str转化为unicode可以通过unicode(),u,str.decode三种方式
unicode转化为str,如果有中文的话,一般通过encode的方式
2).如果代码中有中文的话,我们一般会添加 "# coding=utf-8",这个是什么作用呢,一般如下:
如果代码中有中文注释,就需要此声明
比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。
程序会通过头部声明,解码初始化 u”人生苦短”,这样的unicode对象,(所以头部声明和代码的存储格式要一致
所以,当我们填上编码头的时候,使用s="中文",实际上type(s)是一个str,是已经将unicode以utf-8格式编码成str。
其次,如果我们在代码中使用s=u'中文',相当于将str以utf-8解码成unicode.
这样的输出如下,说明声明头的作用一方面是自动将unicode转化为utf-8,另一方面是使用u的时候指定了utf-8:
3)如果在unicode上面再unicode的话,实际上并没有起到效果
4)u,unicode()和str.decode等价,都可以将str转化成unicode。但是decode不能像unicode()那样连续调用
5)当使用map存储的key为中文的时候,可以str转化成unicode才行,这样就可以跨平台
6)一个需要注意的点就是ascii码的话,unicode和str等价,也就是unicode('t')=='t'
7)文件操作时,open(filename),要求文件的格式和编码头一致,这样读取后是str类型
如果不一致,可以调用io.open()并且指定编码,这样读取后是unicode
1).首先python有两种格式的字符串,str和unicode,其中unicode相当于字节码那样,可以跨平台使用。
str转化为unicode可以通过unicode(),u,str.decode三种方式
unicode转化为str,如果有中文的话,一般通过encode的方式
2).如果代码中有中文的话,我们一般会添加 "# coding=utf-8",这个是什么作用呢,一般如下:
如果代码中有中文注释,就需要此声明
比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。
程序会通过头部声明,解码初始化 u”人生苦短”,这样的unicode对象,(所以头部声明和代码的存储格式要一致
所以,当我们填上编码头的时候,使用s="中文",实际上type(s)是一个str,是已经将unicode以utf-8格式编码成str。
其次,如果我们在代码中使用s=u'中文',相当于将str以utf-8解码成unicode.
# coding=utf-8 __author__ = 'lenovo' a='中文' print a,type(a) a2=unicode(a,"utf-8") print a2,type(a2) a3=u'中文' print a3,type(a3)
这样的输出如下,说明声明头的作用一方面是自动将unicode转化为utf-8,另一方面是使用u的时候指定了utf-8:
3)如果在unicode上面再unicode的话,实际上并没有起到效果
a='中文' a2=unicode(a,"utf-8") print a2,type(a2) a3=unicode(a2) print a3,type(a3)
4)u,unicode()和str.decode等价,都可以将str转化成unicode。但是decode不能像unicode()那样连续调用
a='中文' a2=unicode(a,"utf-8") a3=a.decode("utf-8") print a2,type(a2) print a3,type(a3)
5)当使用map存储的key为中文的时候,可以str转化成unicode才行,这样就可以跨平台
a='中文' map={} map[a.decode('utf-8')]=3 map[unicode('t')]=4 print map print map[u'中文'] print map['t']
6)一个需要注意的点就是ascii码的话,unicode和str等价,也就是unicode('t')=='t'
7)文件操作时,open(filename),要求文件的格式和编码头一致,这样读取后是str类型
如果不一致,可以调用io.open()并且指定编码,这样读取后是unicode
相关文章推荐
- python-for循环使用
- 9. 数据保存库
- python脚本实现xls(xlsx)转成csv
- python作业1.1,编写登录模块
- python核心模块之pickle和cPickle解说
- python 字符串和整数的转换
- Python文件写操作
- python 如何换行
- Python 语法笔记
- python学习一
- Python selenium API
- Python文件读取
- 智能转换 bytes 为 kb/mb/gb/tb/pb...
- python基础之循环
- python中 if __name__ == '__main__': 的理解
- python 将有序list打乱
- python之os
- Python使用gensim计算文档相似性
- boost.python编译及演示样例
- numpy--prod和pad运算