一、字符编码简史:

美国: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

注:关于字符与字节的理解 猛击这里

三、参考文档:

  http://www.cnblogs.com/magicsoar/p/4981701.html

       http://www.cnblogs.com/alex3714/p/4296002.html

       http://www.cnblogs.com/zhangqigao/p/6496172.html

python--字符编码理解的更多相关文章

  1. 深入理解Python字符编码--转

    http://blog.51cto.com/9478652/2057896 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError ...

  2. 深入理解Python字符编码

    不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError.UnicodeDecodeError 错误,每当遇到错误我们就拿着 enc ...

  3. Python字符编码讲解

    声明:本文参考 Python字符编码详解 在计算机中我们不管用什么语言和程序,最终数据在计算机中的都是字节码(也就是01形式)的形式存在的,如果 计算机直接把字节码显示在屏幕上,很明显一般人看不懂字节 ...

  4. Python字符编码详解,str,bytes

    什么是明文 “明文”是可以是文本,音乐,可以编码成mp3文件.明文可以是图像的,可以编码为gif.png或jpg文件.明文是电影的,可以编码成wmv文件.不一而足. 什么是编码?把明文变成计算机语言 ...

  5. python --- 字符编码学习小结(二)

    距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...

  6. 转1:Python字符编码详解

    Python27字符编码详解 声明 一 字符编码基础 1 抽象字符清单ACR 2 已编码字符集CCS 3 字符编码格式CEF 31 ASCII初创 311 ASCII 312 EASCII 32 MB ...

  7. 转2:Python字符编码详解

    1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有 ...

  8. python 字符编码练习

    通过下面的练习,加深对python字符编码的认识 # \x00 - \xff 256个字符 >>> a = range(256)>>> b = bytes(a) # ...

  9. Python字符编码补充

    字符编码: Python字符编码贯穿Python学习的始终,现在应用的是Python2中字符编码的问题是很多的. 这次是要彻底解决Python字符编码的问题!!! 1 字符编码的发展过程: 1 .AS ...

  10. python基础之Day7part2 史上最清晰字符编码理解

    二.字符编码 基础知识: 文本编辑器存取文件原理与py执行原理异同: 存/写:进入文本编辑器 写内容 保存后 内存数据刷到硬盘 取/读:进入文本编辑器 找到内容 从硬盘读到内存 notepad把文件内 ...

随机推荐

  1. hammerjs jquery的选项使用方法,以给swipe设置threshold和velocity为例

    先包含hammer.min.js和 jquery.hammer.js,然后: var $ele = $('#ele'); //复用jquerydom对象,建个变量 $ele.hammer().on(& ...

  2. 小知识点:linux下的mv命令怎么用?

    linux下的mv命令怎么用? mv a.txt b.txt  将a.txt 改名为b.txtmv a.txt /mnt/b.txt    同时更改路径为/mnt/mv a.txt /opt/ftp/ ...

  3. 2019湘潭校赛 G(并查集)

    要点 题目传送 题目本质是每个点必属于两个集合中的一个,伴随的性质是:如果一个人说别人true,则他们一定属于同一阵营:如果说别人fake,一定不属于同一阵营. 每个点拆为\(i\)和\(i + n\ ...

  4. C - AtCoDeerくんと選挙速報 / AtCoDeer and Election Report

    ceil有毒啊..用ceil一直错. 思路就是模拟吧,设当前的答案是ansx和ansy. 如果比例是小于ansx的,那么就要乘以一个倍数k1,使得a * k1 >= ansx的. 所以就用cei ...

  5. openstack安装newton版本keyston部署(一)

    一.部署环境:     两台centos7,  内存2G 控制计算节点: Hostname1:                    ip:172.22.0.218 计算节点及存储节点 Hostnam ...

  6. 如何更改Android的默认虚拟机地址(Android virtual driver路径设置)

    1.将其他目录下的.android复制到C:\Documents and Settings\Administrator路径下(具体的用户名看自己的).然后进入.android\avd打开avd.ini ...

  7. (办公)ssm发送邮件

    1.添加jar包 <!-- Javamail API --> <dependency> <groupId>javax.mail</groupId> &l ...

  8. FastDFS整合Nginx

    浏览器访问FastDFS存储的图片需要通过Nginx访问 需要安装fastdfs-nginx-module.Nginx 安装fastdfs-nginx-module模块 (1)将fastdfs-ngi ...

  9. css:focus伪类的使用

    css中:focus伪类的使用,即给已获取焦点的元素设置样式 示例一 <!DOCTYPE html> <html lang="en"> <head&g ...

  10. jQuery toggle 使用

    jQuery 中 toggle 作用 切换元素的显示与隐藏状态 如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素. <body> <div class=" ...