基于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中的浅拷贝和深拷贝
May 30 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 Python
Python多继承原理与用法示例
Aug 23 Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 Python
对python 树状嵌套结构的实现思路详解
Aug 09 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
python递归函数用法详解
Oct 26 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
python turtle绘图
May 04 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
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP序列化操作方法分析
2016/09/28 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
php实现登录页面的简单实例
2019/09/29 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
windows下python和pip安装教程
2018/05/25 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python对excel文档的操作方法详解
2018/12/10 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
python读取指定字节长度的文本方法
2019/08/27 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
村委会主任先进事迹
2014/01/15 职场文书
报社实习生自荐信
2014/01/24 职场文书
网站出售协议书范文
2014/10/10 职场文书
汽车转让协议书范本
2014/12/07 职场文书
责任书格式
2015/01/29 职场文书
2015年中秋节主持词
2015/07/30 职场文书