基于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使用scrapy解析js示例
Jan 23 Python
Python引用(import)文件夹下的py文件的方法
Aug 26 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
在Python中使用列表生成式的教程
Apr 27 Python
python中的lambda表达式用法详解
Jun 22 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
Python QT组件库qtwidgets的使用
Nov 02 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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
Yii框架分页技术实例分析
2019/08/30 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
wxPython使用系统剪切板的方法
2015/06/16 Python
Python 操作MySQL详解及实例
2017/04/30 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
职称自我鉴定
2013/10/15 职场文书
创伤外科专业推荐信范文
2013/11/19 职场文书
2014庆六一活动方案
2014/03/02 职场文书
大学生就业求职信
2014/06/12 职场文书
库房管理员岗位职责
2015/02/12 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js