前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字符编码、python2和python3编码的区别

字符编码、python2和python3编码的区别

作者头像
GH
发布2022-05-10 10:27:44
4730
发布2022-05-10 10:27:44
举报

目录

字符编码

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

  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编码格式。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 字符编码
    • 文本编辑器存储信息的过程
      • python解释器解释python代码的流程
        • python解释器与文本编辑器的异同
          • 不同编码格式存入与读取数据的过程
            • 乱码的分析
        • python2和python3字符编码的区别
          • python2
            • python3
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档