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实现向QQ群成员自动发邮件的方法
Nov 19 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
使用Python设计一个代码统计工具
Apr 04 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
python try 异常处理(史上最全)
Mar 07 Python
Python 实现微信防撤回功能
Apr 29 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
python实现抠图给证件照换背景源码
Aug 20 Python
Python交互环境下打印和输入函数的实例内容
Feb 16 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 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
php中动态调用函数的方法
2015/03/16 PHP
php控制文件下载速度的方法
2015/03/24 PHP
php查询及多条件查询
2017/02/26 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
轮播的简单实现方法
2016/07/28 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
React中的render何时执行过程
2018/04/13 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python中低维数组填充高维数组的实现
2019/12/02 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
小学开学典礼主持词
2014/03/19 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
python tqdm用法及实例详解
2021/06/16 Python
python套接字socket通信
2022/04/01 Python