基于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操作列表的常用方法分享
Feb 13 Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
Python实现的检测网站挂马程序
Nov 30 Python
Python自动登录126邮箱的方法
Jul 10 Python
Python网站验证码识别
Jan 25 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
Python转换时间的图文方法
Jul 01 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
python函数超时自动退出的实操方法
Dec 28 Python
python使用scapy模块实现ARP扫描的过程
Jan 21 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
详解JS浏览器事件循环机制
2019/03/27 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
Python构建XML树结构的方法示例
2017/06/30 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
python中的字典操作及字典函数
2018/01/03 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
营销专业应届生求职信
2013/11/26 职场文书
房屋买卖协议书
2014/04/10 职场文书
后备干部推荐材料
2014/12/24 职场文书
客服专员岗位职责
2015/02/10 职场文书
门球健将观后感
2015/06/16 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
Django中celery的使用项目实例
2022/07/07 Python