需要了解的Python编码解码知识
时间:2022-07-28
本文章向大家介绍需要了解的Python编码解码知识,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
编码的发展历史
- 最早的编码是美国发明的ASCII,ASCII编码占用1个字节,8个二进制位,最多能够表示2的8次方256个字符。随着计算机的发展,ASCII码已经不能满足世界人民的需求。因为世界各国语言繁多,字符远远超过256个。
- 中国为了处理汉字,设计了GBK(GB2312)编码,它用16个比特位表示一个中文字符,所能表示的汉子个数2的16次方减一65535个,基本上涵盖了我们常用的汉字。
- Unicode编码,把所有语言都统一到一套编码里。Unicode规定字符最少使用2个字节表示,所以最少能够表示2的16次方=65536个字符。
- UTF-8是对Unicode编码的压缩和优化,它不再要求最少使用2个字节,而是将所有的字符和符号进行分类:ASCII码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。如果你要传输的文本包含大量英文字符,用UTF-8编码就能大大节省空间。 目前,内存中一般使用的字符编码是Unicode,硬盘中使用的字符编码是UTF-8。
如何理解编码与解码
从内存(文本信息字符串)存到磁盘(二进制字节数据)的过程,称为编码。
从磁盘(二进制字节数据)到内存(文本信息字符串)的过程的过程,称为解码。
在计算机内存中统一使用Unicode编码,当保存到硬盘或者需要传输时,就转换到UTF-8编码。
比如:用记事本编辑文本时,文件读取从磁盘的UTF-8字符被转换为Unicode字符到内存中,保存文件时,会把Unicode字符转换为UTF-8字符保存到磁盘中。
Python解释器执行代码的时候,需要把解释器和执行程序加载到内存中执行。
如何保证不乱码?
存的时候用什么编码,取的时候就用什么编码。
内存中编码都是Unicode,但是保存到硬盘中就要指定一个字符编码,而从硬盘中读取到内存就要用存取的编码,否则就会出现乱码。
Python中的默认编码
Python解释器也类似于一个文本编辑器,Python解释器也有自己默认的编码方式。
Python2.x默认ASCII码,python3.x默认的utf-8,可以通过如下方式查询:
查询默认编码方式
import sys
print(sys.getdefaultencoding())
输出
utf-8(python3环境)
ascii(python2环境)
如果不想使用默认的解释器编码,需要用户在文件开头进行声明
如果在python2解释器去执行一个utf-8编码的文件,就会以默认的ASCII去解码utf-8,一旦程序中有中文,自然就解码错误了,所以我们在文件开头位置声明 #coding:utf-8,其实就是告诉解释器,你不要以默认的编码方式去解码这个文件,而是以utf-8来解码。
Python3的解释器默认utf-8编码,已经不需要添加这一行声明了。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法