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邮箱发送邮件的方法
May 28 Python
一张图带我们入门Python基础教程
Feb 05 Python
python中requests和https使用简单示例
Jan 18 Python
python re模块findall()函数实例解析
Jan 19 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
python3的输入方式及多组输入方法
Oct 17 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
Pytorch对Himmelblau函数的优化详解
Feb 29 Python
基于python实现查询ip地址来源
Jun 02 Python
Python中的程序流程控制语句
Feb 24 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/24 PHP
PHP检测用户语言的方法
2015/06/15 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
PHP children()函数讲解
2019/02/03 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
javascript的this关键字详解
2019/05/20 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python爬虫面试宝典(常见问题)
2018/03/02 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python super()函数的基本使用
2020/09/10 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
新闻专业个人自我评价
2013/09/21 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
大学生入党思想汇报
2014/01/01 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
红色旅游心得体会
2014/09/03 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
感恩主题班会教案
2015/08/12 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
详解python字符串驻留技术
2021/05/21 Python
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python