基于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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python标准库urllib2的一些使用细节总结
Mar 16 Python
Python使用redis pool的一种单例实现方式
Apr 16 Python
Python 装饰器深入理解
Mar 16 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
详解django中使用定时任务的方法
Sep 27 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
Jan 05 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Python 列表推导式需要注意的地方
Oct 23 Python
python tqdm实现进度条的示例代码
Nov 10 Python
Pyhton模块和包相关知识总结
May 12 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
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
tagName的使用,留一笔
2006/06/26 Javascript
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
VSCode配置react开发环境的步骤
2017/12/27 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
Python实现类继承实例
2014/07/04 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
中学教师培训制度
2014/01/31 职场文书
文案策划求职信
2014/04/14 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
优秀护士事迹材料
2014/12/25 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
2015年材料员工作总结
2015/04/30 职场文书