基于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 控制语句
Nov 03 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
Mar 05 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
Python循环实现n的全排列功能
Sep 16 Python
Python中断多重循环的思路总结
Oct 04 Python
jenkins+python自动化测试持续集成教程
May 12 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
python 基于Apscheduler实现定时任务
Dec 15 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 print EOF实现方法
2009/05/21 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
玩转方法:call和apply
2014/05/08 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
js实现批量删除功能
2020/08/27 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Keras实现DenseNet结构操作
2020/07/06 Python
详解Flask前后端分离项目案例
2020/07/24 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
应届生骨科医生求职信
2013/10/31 职场文书
期末总结的个人自我评价
2013/11/02 职场文书
财务主管岗位职责
2014/02/28 职场文书
科技之星事迹材料
2014/06/02 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
暂住证明怎么写
2015/06/19 职场文书
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
Echarts如何重新渲染实例详解
2022/05/30 Javascript
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技