基于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中使用HTML模版的教程
Apr 29 Python
Python yield 使用浅析
May 28 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Python实现读取json文件到excel表
Nov 18 Python
Python绘制KS曲线的实现方法
Aug 13 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
python实现处理mysql结果输出方式
Apr 09 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
深入了解NumPy 高级索引
2020/07/24 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
思想品德自我评价
2014/02/04 职场文书
员工升职自荐信
2015/03/27 职场文书
早恋主题班会
2015/08/14 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
搭建Yolov5服务器
2022/04/30 Servers