字符编码

文本编辑器存储信息的过程

  1. 打开编辑器就在内存中打开了一个进程,用编辑器编写的内容存在内存中,断电会丢失。
  2. 点击保存,编辑器把内存的数据刷到了硬盘上。
  3. 编写.py文件(没有执行时)和编写其他文件没有区别,只是在写一堆字符。

python解释器解释python代码的流程

  • 第一阶段:python解释器启动,这时相当于启动了一个文本编辑器。
  • 第二阶段:python解释器相当于文本编辑器,打开test.py文件,从硬盘将test.py文件从硬盘读入到内存中(python的解释性决定了解释器只关心文件的内容,不关心文件的后缀)。
  • 第三阶段:python解释器解释执行加载到内存中的test.py代码。在该阶段才会识别python语法,为变量值等开辟存储空间。

python解释器与文本编辑器的异同

  • 相同点:python具备读取.py文件的功能,这与文本编辑器一样。
  • 不同点:读取文件之后两者的目的不同,文本编辑器将文件读入内存后为了显示和编辑,python解释器是为了执行Python代码,所以会识别代码的语法。

不同编码格式存入与读取数据的过程

utf-8编码格式只能和Unicode格式相互转换,不能和其他编码格式转化

乱码的分析

  1. 存文件是乱码

    用中文的编码格式存储日文等其他国家的文字则会导致存入的二进制位并不对应要存的语言的字符,从而导致存入时就会出现乱码。

  2. 读文件时乱码

    读文件时如果读取采用的编码格式与文本原来的编码格式不同则会导致出现乱码,如用gbk读取ASCII编码的文件

总结

要想不出现乱码,文件中的字符按什么标准编码,就用什么标准去读取文件(解码)。由于内存中固定使用Unicode编码,我们只能改变存储到硬盘时使用的编码格式。

python2和python3字符编码的区别

python2

python2有两种存储形式,第一种:Unicode;第二种:按coding头选择存储格式,假设python2用utf8存储x='中文',当你print(x)的时候,终端接收gbk的变量x,但是windows终端编码是utf8,会乱码。

python3

python3只有Unicode一种存储变量的形式。Python2中默认使用ascii,Python3中默认使用utf-8,文本编辑器编写的文件默认为gbk编码格式。

字符编码、python2和python3编码的区别的更多相关文章

  1. python2和python3编码问题

    欢迎加入python学习交流群 667279387 一.什么是编解码 1.什么是unicode 2.编码方式 二.python中的编解码 1.python2 (1).encode() 和 .decod ...

  2. python2和python3编码

    python2编码 unicode:unicode 你好 u'\u4f60\u597d' | | | | encode('utf8')| |decode('utf8') encode('gbk')| ...

  3. 字符编码 + python2和python3的编码区别(day08整理)

    目录 昨日回顾 二十三.元组内置方法 二十四.散列表 二十五.字典内置方法 二十六.集合内置方法 二十七.深浅拷贝 拷贝 浅拷贝 深拷贝 今日内容 二十八.字符编码 1.文本编辑器存储信息的过程 2. ...

  4. 字符编码 python2与python3的区别

    目录 1. 字符编码 2. 文本编辑器存储信息的过程 3. 编码: 1. 编码的历史 2. gb2312和gbk的区别 3. 编码和解码 4. python解释器 解释代码的流程 1. 读取文本到解释 ...

  5. while 运算符 初始编码 python2和python3的区别

    1.while 循环 2.运算符 3.初始编码 4.python2 和python3的区别 1.while循环: 关键词:while[循环]         break[跳出循环]         c ...

  6. Python2 和 Python3 编码问题

    基本存储单元 位(bit, b):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位. 字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节. 1B = 8b 各种信息在计算机 ...

  7. [python]python2与python3版本的区别

    python2和python3的区别 区别: print函数 整数相除 Unicode 异常处理 xrange map函数 不支持has_key print函数: Python 2: print是语句 ...

  8. python版本坑:md5例子(python2与python3中md5区别)

    对于一些字符,python2和python3的md5加密出来是不一样的. Python2 和Python3MD5加密 # python2.7 pwd = "xxx" + chr(1 ...

  9. Python2和Python3编码的区别

    Python2 python2中有两种储存变量的形式,第一种:Unicode:第二种:按照coding头来的. 假设python2用utf8存储x='中文',当你print(x)的时候,终端接收gbk ...

随机推荐

  1. 全局namespace与模块内的namespace

    declare global{ declare namespace xxx } 相当于 在一个js文件的顶级部分 declare namespace xxx 声明的都是全局的namespace, 如果 ...

  2. Matlab——图形绘制——二维平面图形

    二维平面图形 hold on ————在已画好的图形上添加新的图形 plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y 座标.下例可画出一条正弦曲线: > ...

  3. Lesson 4 The double life of Alfred Bloggs

    There are two type of people in the society. People who do manual works can higher payment than peop ...

  4. node.js中的 compression 中间件

    NodeJs——express启用gzip gzip是用于压缩,js.css等文件的压缩 具体方法如下: 先安装一个依赖 npm install compression --save 在项目的 app ...

  5. 第九周课程总结&实验报告七

    实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. package ...

  6. 【查阅】mysql配置文件/参数文件重要参数笔录(my.cnf)

    持续更新,积累自己对参数的理解 [1]my.cnf参数 [client]port = 3306socket = /mysql/data/3306/mysql.sockdefault-character ...

  7. 大数据平台CentOS7+CDH5.12.1集群搭建

    1.CM(Cloudera Manager)介绍 1.1 简介 Cloudera Manager是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具,使得安装集群从几天的时间缩短在几个小 ...

  8. 如何查看SQL Server某个存储过程的执行历史【转】

    db_name(d.database_id) as DBName, s.name as 存储名称, s.type_desc as 存储类型, d.cached_time as SP添加到缓存的时间, ...

  9. Eclipse连接SQL Server 2008数据库

    一.准备材料 要能够使用数据库就要有相应的JDBC,所以我们要去Microsoft官网下载 https://www.microsoft.com/zh-cn/download/details.aspx? ...

  10. 嵌入式软件工程师C语言经典笔试2

    1. 使用宏定义swap函数,不使用中间变量 #define swap(x,y) {(x) = (x) + (y);(y) = (x) - (y);(x) = (x) - (y)} 2. 实现字符串的 ...