字符编码

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

  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. 红帽虚拟化RHEV3.2创建虚拟机(图文Step by Step)

    目录 目录 前言 Install RHEV 创建Data CenterClusterHost 创建存储 创建虚拟机 前言 RHEV3.2的Web管理界面有了很大的改进,更加的简单和便捷,还可以使用中文 ...

  2. git关联github远程仓库的问题

    git关联github远程仓库的时候,报fatal: remote origin already exists. 导致这个问题原因可能是之前关联的时候关联错了,再次关联就不行了. 解决办法是: 1.将 ...

  3. [转帖]同事推荐的的aira2

    Windows系统安装最新版Aria2客户端及使用教程 https://www.moerats.com/archives/519/ 改天学习一下. 说明:之前都是说的在Linux VPS服务器上安装A ...

  4. linux 获取目录中详细信息 -rw-r--r--详解

    -rw-r–r– 1 root root 1313 Sep 3 14:59 test.log详解 查询目录中的内容命令 ls [选项] [文件或目录] 选项: -a 显示所有文件.包括隐藏文件 -l ...

  5. OpenGL字体绘制

    /* glfont.hpp sdragonx 2019-08-15 00:03:33 opengl字体类,提供初学者参考学习 opengl初始化之后,创建字体 font.init(L"微软雅 ...

  6. so easy(并查集+unordered_map)

    There are nn points in an array with index from 11 to nn, and there are two operations to those poin ...

  7. virtualenvwrapper安装和使用

    virtualenvwrapper安装和使用步骤: 1.安装: *nix上安装的命令: pip install virtualenvwrapper windows上安装的命令: pip install ...

  8. 多线程测试工具groboutils的使用

    一直使用junit做为服务测试框架,感觉不错.最近有人反映在高并发的情况下,存在服务调不到.无奈再次打开单元测试模拟高并发的 情况,却发现junit不支持并发测试      引入groboutils ...

  9. Chrome浏览器记住密码后input框黄色背景且背景图片不显示的问题

    Chrome浏览器记住密码后再进入登录页后,输入框背景颜色变为黄色,字体颜色变成#000黑色,且添加的背景图片也那不显示了,进入审查元素后,发现浏览器默认给输入框添加了样式,并且无法通过importa ...

  10. django登录注册验证之密码包含特殊字符,确认密码一致实现,Form验证

    Form验证的原理 首先用户在注册界面提交表单,后台收到表单之后通过request.post取到数据然后传入已经写好的Form类 执行obj.is_valid()这里的obj为Form的实例,在For ...