python编码格式
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.
# 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编码格式的更多相关文章
- 解决python编码格式错误问题
一:前言 遇到问题:print输入汉字时提示错误信息 UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: o ...
- Python编码格式导致的csv读取错误
Python编码格式导致的csv读取错误(pandas.read_csv) 本文记录python小白我今天遇到的这两个问题(csv.reader和pandas.csv_read): pandas模块“ ...
- Python编码格式的指定方式
参考自: http://python.jobbole.com/85852/, 原文探究的更深,有兴趣的可以去看看. 简介来讲就是使用一种特殊的注释来声明编码格式,如何判断这种格式也用了很简单粗暴有效的 ...
- python 编码格式
1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有 ...
- Python 编码格式的使用
编码史 ASCII > Unicode > UTF-8 Unicode支持多语言,UTF-8自动转换长短细节节省空间 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传 ...
- Python 浅谈注释的重要性
最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是难以下咽,几乎每个字符都要咨询他,用老师的话来说,这就是山炮编程员,所以此时的我意识到写一篇关于注释程序的重要性了,因此特地的写一篇文章帮助大家 ...
- Python 浅谈编程规范和软件开发目录规范的重要性
最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...
- Python UNICODE GBK UTF-8 之间相互转换
Python 编码格式检测,可以使用 chardet , 例如: import urllib rawdata = urllib.urlopen('http://www.google.cn/').rea ...
- python浅谈编程规范和软件开发目录规范的重要性
前言 我们这些初学者,目前要做的就是遵守代码规范,这是最基本的,而且每个团队的规范可能还不一样,以后工作了,尽可能和团队保持一致,目前初学者就按照官方的要求即可 新人进入一个企业,不会接触到核心的架构 ...
随机推荐
- [转载]Silverlight实用窍门系列:71.Silverlight的Style
本文版权归作者和博客园共有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文链接:http://www.cnblogs.com/chengx ...
- [Javascript]史上最短的IE浏览器判断代码
今天发现个很有趣的js判断全世界最短的代码,想想之前自己写的判断ie浏览器的,这个实在简单多了 var ie = !+"\v1"; 仅仅需要7bytes!参见这篇文章,<32 ...
- base64自定义编码表 php版本
在一次接口对接中,要用到base64自定义编码表来进行编码和解码,从网上搜索了一下,讲原理的比较多也比较透彻,提供的编码的例子但是没有解码的,以下是自己实现的一个base64自定义字典解码的例子,比较 ...
- arcpy批量打印地图
有个处理数据的需求是把一个图层中的要素单独显示在底图上,设置固定的比例尺,并打印出图片. 考虑到后续会有重复的大量的数据要处理,决定使用arcpy处理. 首先新建一个mxd底图文档,把需要打印的地图都 ...
- centos 6.5 安装 nginx+php+mysql
一.准备工作 (1)配置防火墙 1.首先检查iptables服务的状态 [root@woxplife ~]# service iptables status iptables: Firewall is ...
- Ext.getCmp()的简单使用
Ext.getCmp(Ext组件ID),根据Ext组件的ID选择EXT组件. 例如:点击Panel->toolbar上的button改变Panel的标题 Ext.onReady(function ...
- rpm包制作
ubuntu下先下载sudo apt-get install rpm就行了. 然后测试下rpm和rpmbuild命令都是存在的.好了,OK. rpm安装包的制作有严格的自定义的路径,这个路径是在/us ...
- Unix命令行学习
Listing files and directories ls 显示你当前目录的文件 ls -a 显示你千亩目录的文件(包括隐藏文件)ls <name1>/<name2> 显 ...
- paip.c++ qt 图片处理 检测损坏的图片
paip.c++ qt 图片处理 检测损坏的图片 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net ...
- 安装mysql时出错。无法初始化。 libstdc++.so.5
./bin/mysqld: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: ...