基于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群发邮件实例代码
Jan 03 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
Python语言描述最大连续子序列和
Dec 05 Python
python基础教程项目五之虚拟茶话会
Apr 02 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
python psutil监控进程实例
Dec 17 Python
Pytest mark使用实例及原理解析
Feb 22 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
python 星号(*)的多种用途
Sep 21 Python
python基于tkinter实现gif录屏功能
May 19 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
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
js实现时钟定时器
2020/03/26 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
pytorch permute维度转换方法
2018/12/14 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python实现翻译word表格小程序
2020/02/27 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
python3跳出一个循环的实例操作
2020/08/18 Python
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
双语教学实施方案
2014/03/23 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
服务行业演讲稿
2014/09/02 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
升学宴祝酒词
2015/08/11 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫