基于python 字符编码的理解


Posted in Python onSeptember 02, 2017

一、字符编码简史:

美国:1963年 ASCII (包含127个字符  占1个字节)

中国:1980年 GB2312 (收录7445个汉字,包括6763个汉字和682个其它符号)

                 1993年 GB13000 (收录20902个汉字)

                         1995年 GBK1.0 (收录 21003个汉字)

                                  2000年 GB18030 (收录70244个汉字)

世界:1991年 unicode(‘万国码'也就统一编码,通常占2字节,复杂的汉字占4字节)

              UTF-8 (可变长的字符编码)

二、python中的编码解码应用

Python2中的字符串进行字符编码转换过程是:

字节串-->decode('原来的字符编码')-->Unicode字符串-->encode('新的字符编码')-->字节串

#!/usr/bin/env python
# -*- coding:utf-8 -*-

utf_8_a = '测试'
print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的内容、类型及长度
unicode_a = utf_8_a.decode('utf-8') #对utf_8_a进行解码成unicode
print(unicode_a,type(unicode_a),len(unicode_a))
gbk_a = utf_8_a.decode('utf-8').encode('gbk') #先解码在编码成gbk
print(gbk_a,type(gbk_a),len(gbk_a)) #打印gbk_a的内存、类型及长度
print(gbk_a.decode('gbk'))
----------------------------------------------------
pytharm(python2.6)运行结果:
('\xe6\xb5\x8b\xe8\xaf\x95', <type 'str'>, 6)
(u'\u6d4b\u8bd5', <type 'unicode'>, 2)
('\xb2\xe2\xca\xd4', <type 'str'>, 4)
测试

Python3中定义的字符串默认就是unicode,因此不需要先解码,可以直接编码成新的字符编码:

字符串-->encode('新的字符编码')-->字节串

#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
utf_8_a = '测试'
print(utf_8_a,type(utf_8_a),len(utf_8_a)) #打印utf_8_a的内容、类型及长度
gbk_a = utf_8_a.encode('gbk')
print(gbk_a.decode('gbk'),type(gbk_a),len(gbk_a))
 --------------------------------------------------------
pycharm(python3.6)运行结果:
测试 <class 'str'> 2
测试 <class 'bytes'> 4

以上这篇基于python 字符编码的理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现无证书加密解密实例
Oct 27 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
Python批量修改文本文件内容的方法
Apr 29 Python
Python 将pdf转成图片的方法
Apr 23 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
python中的逆序遍历实例
Dec 25 Python
pycharm通过ssh连接远程服务器教程
Feb 12 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python实现的简单模板引擎功能示例
Sep 02 #Python
Python实现Logger打印功能的方法详解
Sep 01 #Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 #Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 #Python
Python基于回溯法子集树模板实现8皇后问题
Sep 01 #Python
Python3.x对JSON的一些操作示例
Sep 01 #Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 #Python
You might like
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP基础知识回顾
2012/08/16 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
Python最基本的输入输出详解
2015/04/25 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
党课心得体会范文
2014/09/09 职场文书
作风转变年心得体会
2014/10/22 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
户外亲子活动总结
2015/05/08 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书