Python编码类型转换方法详解


Posted in Python onJuly 01, 2016

本文实例讲述了Python编码类型转换方法。分享给大家供大家参考,具体如下:

1:Python和unicode

为了正确处理多语言文本,Python在2.0版后引入了Unicode字符串。

2:python中的print

虽然python内部需要将文本编码转换为unicode编码来处理,而终端显示工作则由传统的Python字符串完成(实际上,Python的print语句根本无法打印出双字节的Unicode编码字符)。

python的print会对输出的unicode编码(对其它非unicode编码,print会原样输出)做自动的编码转换(输出到控制台时),而文件对象的write方法就不会做,因此,当一些字符串用print输出正常时,write到文件确不一定和print的一样。

在linux下是按照环境变量来转换的,在linux下使用locale命令就可以看到。print语句它的实现是将要输出的内容传送了操作系统,操作系统会根据系统的编码对输入的字节流进行编码。

>>>str='学习python'
>>> str
'\xe5\xad\xa6\xe4\xb9\xa0python' #asII编码
>>> print str
学习python
>>> str=u'学习python'
>>> str       ####unicode编码
'\xe5u\xad\xa6\xe4\xb9\xa0python'

3: python中的decode

将其他字符集转化为unicode编码(只有中文字符才需要转换)

>>> str='学习'
>>> ustr=str.decode('utf-8')
>>> ustr
u'\u5b66\u4e60'

这样就对中文字符进行了编码转换,可用python进行后续的处理;(如果不转换的话,python会根据机器的环境变量进行默认的编码转换,这样就可能出现乱码)

4:python中的encode

将unicode转化为其它字符集

>>> str='学习'
>>> ustr=str.decode('utf-8')
>>> ustr
u'\u5b66\u4e60'
>>> ustr.encode('utf-8')
'\xe5\xad\xa6\xe4\xb9\xa0'
>>> print ustr.encode('utf-8')
学习

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
简化Python的Django框架代码的一些示例
Apr 20 Python
Python的装饰器用法学习笔记
Jun 24 Python
mysql 之通过配置文件链接数据库
Aug 12 Python
Python正则捕获操作示例
Aug 19 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
python 进程池pool使用详解
Oct 15 Python
python单向链表实例详解
May 25 Python
Python面向对象编程中关于类和方法的学习笔记
Jun 30 #Python
Python中的time模块与datetime模块用法总结
Jun 30 #Python
详解Swift中属性的声明与作用
Jun 30 #Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 #Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 #Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 #Python
Python的Tornado框架实现图片上传及图片大小修改功能
Jun 30 #Python
You might like
把77A收信机改造成收音机
2021/03/02 无线电
第六章 php目录与文件操作
2011/12/30 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
python实现bitmap数据结构详解
2014/02/17 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
python如何写出表白程序
2020/06/01 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
房地产营销策划方案
2014/02/08 职场文书
交通志愿者活动总结
2014/06/27 职场文书
房产公证委托书范本
2014/09/20 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
计划生育责任书
2015/05/09 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
Ajax实现三级联动效果
2021/10/05 Javascript