基于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字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
浅谈用Python实现一个大数据搜索引擎
Nov 28 Python
python正则实现提取电话功能
Feb 24 Python
Python实现多进程的四种方式
Feb 22 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python打开使用的方法
Sep 30 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
python中%格式表达式实例用法
Jun 18 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去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
php二维码生成以及下载实现
2017/09/28 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
从零学Python之hello world
2014/05/21 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python实现LRU算法的2种方法
2015/06/24 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
python中join()方法介绍
2018/10/11 Python
python中强大的format函数实例详解
2018/12/05 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
汽车检测与维修专业求职信
2014/07/04 职场文书
移交协议书
2014/08/19 职场文书
毕业生实习证明
2014/09/19 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2014年党务工作总结
2014/11/25 职场文书
资料员岗位职责
2015/02/10 职场文书
我的中国梦主题班会
2015/08/14 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书