基于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 相关文章推荐
Win8下python3.5.1安装教程
Jul 29 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
python中的tcp示例详解
Dec 09 Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 Python
Python实现微信机器人的方法
Sep 06 Python
18个Python脚本可加速你的编码速度(提示和技巧)
Oct 17 Python
python二元表达式用法
Dec 04 Python
django框架中间件原理与用法详解
Dec 10 Python
Python连接字符串过程详解
Jan 06 Python
Python 文件数据读写的具体实现
Jan 24 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 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
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php读取excel文件的简单实例
2013/08/26 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
js原型链原理看图说明
2012/07/07 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
vue-router的hooks用法详解
2020/06/08 Javascript
python快速排序代码实例
2013/11/21 Python
python类继承用法实例分析
2014/10/10 Python
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
Python实现二维数组输出为图片
2018/04/03 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
python实现控制COM口的示例
2019/07/03 Python
python英语单词测试小程序代码实例
2019/09/09 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
python关于调用函数外的变量实例
2019/12/26 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
Python实现GIF图倒放
2020/07/16 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
女方婚礼新郎答谢词
2014/01/11 职场文书
局火灾防控工作方案
2014/05/25 职场文书
班级读书活动总结
2014/06/30 职场文书
安全生产月标语
2014/10/07 职场文书
Python字符串常规操作小结
2022/04/03 Python
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技