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 相关文章推荐
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
python删除列表中重复记录的方法
Apr 28 Python
Python中的localtime()方法使用详解
May 22 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 Python
Django异步任务之Celery的基本使用
Mar 23 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 Python
python的变量和简单数字类型详解
Sep 15 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 读取文件乱码问题
2010/02/20 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
使用JavaScript中的lodash编写双色球效果
2018/06/24 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
py中的目录与文件判别代码
2008/07/16 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
利用Python实现图书超期提醒
2016/08/02 Python
python实现淘宝秒杀脚本
2020/06/23 Python
python selenium 弹出框处理的实现
2019/02/26 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
不用游标的SQL语句有哪些
2012/09/07 面试题
护理学专业推荐信
2013/12/03 职场文书
优秀高中生事迹材料
2014/02/11 职场文书
垃圾桶标语
2014/06/24 职场文书
师德先进个人材料
2014/12/20 职场文书
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers