基于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函数学习笔记
Oct 07 Python
python实现复制整个目录的方法
May 12 Python
python交互式图形编程实例(一)
Nov 17 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
python设计tcp数据包协议类的例子
Jul 23 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
python交互模式基础知识点学习
Jun 18 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
一劳永逸彻底解决pip install慢的办法
May 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
php 学习资料零碎东西
2010/12/04 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python实现年会抽奖程序
2019/01/22 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
办公室前台岗位职责范本
2013/12/10 职场文书
运动会通讯稿300字
2014/02/02 职场文书
大学军训感言400字
2014/03/11 职场文书
建筑投标担保书
2014/05/20 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
详解MySQL的内连接和外连接
2023/05/08 MySQL