基于python 字符编码的理解
|
一、字符编码简史: 美国: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)运行结果:
('xe6xb5x8bxe8xafx95',<type 'str'>,6)
(u'u6d4bu8bd5',<type 'unicode'>,2)
('xb2xe2xcaxd4',4)
测试
Python3中定义的字符串默认就是unicode,因此不需要先解码,可以直接编码成新的字符编码: 字符串-->encode('新的字符编码')-->字节串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
utf_8_a = '测试'
print(utf_8_a,len(utf_8_a)) #打印utf_8_a的内容、类型及长度
gbk_a = utf_8_a.encode('gbk')
print(gbk_a.decode('gbk'),len(gbk_a))
--------------------------------------------------------
pycharm(python3.6)运行结果:
测试 <class 'str'> 2
测试 <class 'bytes'> 4
以上这篇基于python 字符编码的理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Python selenium文件上传方法汇总
- python – Django的call_command失败,缺少必需的参数
- python – pelican模板中当前页面的URL的变量
- python写的一个文本编辑器
- python – Pandas:使用pd.Series对带有索引的pd.DataFrame
- python-有没有办法从文本文件中带括号的数字中提取值?
- 如何使用Python根据两个元素之一的列表元素出现来联接两个列
- python – 带有postgres的游标,存储数据的位置以及对DB的调
- 详解python 字符串和日期之间转换 StringAndDate
- 运行bash命令在Python3中复制粘贴文件是否可靠?
