1. 字符编码

字符:就是存储了信息的东西

键盘发送等等是电流——》主机(内存)接收到电流(当做010101011101)——》显示屏 接收电流 (当做010101010——》键盘)

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

  • 文本编辑器——》写文本 ——》存储信息

  • 显示器(内存)——》(转换)硬盘

3. 编码:

1. 编码的历史

美国:ASCII

中国:gb2312

等等。。。 但这样会妨碍信息文化的交流

然后出现了Unicode编码(一种对应关系)

Unicode可以认识万国编码

现在所有的电脑都是这样的:内存中用Unicode读取硬盘内容,存用utf8存(硬盘)。

内存中不用utf8,是因为utf8和其他编码没有转换关系

注意:虽然说utf是为了使用更少的空间而使用的,但那只是相对于unicode编码来说,如果已经知道是汉字,则使用GB2312/GBK无疑是 最节省的。不过另一方面,值得说明的是,虽然utf-8编码对汉字使用3个字节,但即使对于汉字网页,utf-8编码也会比unicode编码节省,因为网页中包 含了很多的英文字符。

2. gb2312和gbk的区别

gb2312 只支持常用的字词

gbk 支持几乎全部

windows系统的记事本默认是 gbk编码,除此之外都是 utf8

3. 编码和解码

Unicode编码——》(编码)utf8 从内存到硬盘

utf8 ——》(解码)Unicode 从硬盘到内存

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

1. 读取文本到解释器

python2默认是使用ASCII编码读取

python3默认使用 utf8编码读取

(当有coding头时,他们都使用coding中设定的编码进行读取)

2. 识别代码(检查语法问题)

3. 往终端打印

存储变量:

  • python2中存储变量用Unicode/coding指定的编码存储变量
print u'中国' #表示用unicode存储变量
  • python3中默认使用Unicode存储变量

假设1:python2用coding指定的gbk存储变量,终端支持的编码是utf8,打印结果:乱码

假设2:python2用Unicode(u'中文')来存储变量,终端支持的编码是utf8/gbk,打印结果:都不会乱码

假设3:python3用Unicode存储变量,终端支持的编码是utf8/gbk,打印结果:都不会乱码

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

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

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

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

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

  3. python2与python3的区别,以及注释、变量、常量与编码发展

    python2与python3的区别 宏观上: python2:源码不统一,混乱,重复代码太多. python3:源码统一标准,能去除重复代码. 编码上: python2:默认编码方式为ASCII码. ...

  4. python2 与 python3 语法区别

    python2 与 python3 语法区别 概述# 原稿地址:使用 2to3 将代码移植到 Python 3 几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为 ...

  5. 详解python2 和 python3的区别

    看到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别!搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又 ...

  6. python2和python3的区别

    python2和python3的区别 参考链接:http://www.runoob.com/python/python-2x-3x.html 1.源码上的区别 python2 python3 源码不规 ...

  7. python2 与 python3的区别

    python2 与 python3的区别 几乎所有的python2程序都需要一些修改才能正常的运行在python3的环境下.为了简化这个转换过程,Python3自带了一个2to3的实用脚本.这个脚本会 ...

  8. python2 与 python3的区别总结

    python2 与 python3的区别总结    几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Python 3自带了一个叫做2to3的 ...

  9. 详解python2 和 python3的区别-乾颐堂

    看到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别!搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又 ...

随机推荐

  1. MySQL——执行计划

    项目开发中,性能是我们比较关注的问题,特别是数据库的性能:作为一个开发,经常和SQL语句打交道,想要写出合格的SQL语句,我们需要了解SQL语句在数据库中是如何扫描表.如何使用索引的: MySQL提供 ...

  2. Docker部署MySQL8并实现远程连接

    1. 拉取镜像 docker pull mysql 2. 运行镜像启动容器 docker run --name mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=y ...

  3. python学习笔记:(八)条件语句

    if语句,python中if语句的一般形式如下: conditon1为真,执行statement_block_1 condition1为假,判断conition_2,如果condition_2为真,执 ...

  4. 【不错】MySQL 事务隔离级别

    一.事务描述 1.事务的四个特性 ACID 1. A:原子性 = 一个事务或者都成功.或者都失败: 2. C:一致性 = 在整个事务的生命周期里面,查询到的数据是一致的: MVCC多版本并发控制:利用 ...

  5. Git配置用户名、邮箱

    当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址. 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改. 否则,用户名会显示为unkno ...

  6. 03Java面试题-------------中科软

    1.String是最基本的数据类型吗?String和StringBuffer的区别? 不是.Java中的基本数据类型只有8个:byte,short,int,long,float,double,char ...

  7. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...

  8. CentOS7 安装dotnet sdk 2.1.401 的简单办法

    1. 下载 linux版本的tar包 路径为: https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.1.401-linux-x64 ...

  9. 使用Oracle12c 以上的PDB创建数据库用户 密码过期的简单处理

    1. 先通过监听查看PDB的名字 Windows 打开命令行: 输入命令 lsnrctl status 一般在如图示的最下面 2. 也可以通过GS的全局配置文件来查看 数据库连接SID信息. C:\P ...

  10. 安装Linux系统CentOS6.5

    个人机器搭建分布式环境时避免要使用虚拟机来满足分布式环境所需的机器,当然伪分布式除外. 简单记录下虚拟机环境的创建过程,Mac上常用的虚拟机VMware Fusion. 虚拟机资源库中新建虚拟机: 选 ...