基于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设计模式编程中建造者模式的使用
Mar 02 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
python selenium循环登陆网站的实现
Nov 04 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
python同时遍历两个list用法说明
May 02 Python
Python爬虫之App爬虫视频下载的实现
Dec 08 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 MySQL与分页效率
2008/06/04 PHP
php中explode函数用法分析
2014/11/15 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python 处理string到hex脚本的方法
2018/10/26 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
加热夹克:RAVEAN
2018/10/19 全球购物
个人素质的自我评价分享
2013/12/16 职场文书
装修五一活动策划案
2014/01/23 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
闭幕式主持词
2014/04/02 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS