基于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转换摩斯密码示例
Feb 16 Python
Python re模块介绍
Nov 30 Python
浅谈Python实现贪心算法与活动安排问题
Dec 19 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
python按行读取文件,去掉每行的换行符\n的实例
Apr 19 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
Python JSON格式数据的提取和保存的实现
Mar 22 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
基于pandas中expand的作用详解
Dec 17 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 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 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python实现堆排序的方法详解
2016/05/03 Python
python版飞机大战代码分享
2018/11/20 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
Python内置类型性能分析过程实例
2020/01/29 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
数据库面试要点基本概念
2013/10/31 面试题
分布式数据库需要考虑哪些问题
2013/12/08 面试题
在校学生职业规划范文
2014/01/08 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
关于童年的读书笔记
2015/06/26 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
Python语言中的数据类型-序列
2022/02/24 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
Android Studio 计算器开发
2022/05/20 Java/Android