字符(存储了信息的东西)编码():

键盘发送的是电流--》主机(内存)接受到电流(当作010100110101)--》显示屏 接受电流(当作010100110101-------》键盘)

编码:01001010101--》键盘

字符编码

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

文本编辑器--》写文本--》存储信息

显示屏(内存)---》(转换)硬盘

中文-->0101010101

English-->01010111101010

日本語-->0101101010

早期 美国人 才用计算机

0--》a

1--》b

0001--》a

0011--》b

...

1111--》w

0000 0000-->a

ascII编码--》美国人

print(chr(64))

print(ord('♂'))

#ascII编码的转换关系的方法
print(chr(64)) print(ord('♂'))

日本也要用计算机,韩国也要用计算机,中国也要用计算机

日本人也造一种编码shift_JIS shit

韩国人也造一种编码Euc-kr fuckr

中国人也造一种编码gb2312

我要在韩国人的电脑上写日文(0001 0010)----ab---》韩国--cd---》以前看片的乱码现象

早期各个国家只能使用各个国家的计算机--》天下大事分久必合合久必分

这个时候出现了unicode编码(内存)(一种对应关系)

unicode可以认识万国编码

硬盘中无论躺着什么格式的编码文件,Unicode都可以识别,假设你看岛国片,从硬盘中读取fuck编码,unicode帮你转换成gb2312,解决了乱码问题,用unicode存

都用unicode取,有用unicode存,以后写代码只能写Unicode--》以后全世界的代码都是Unicode

unicode存的时候会占用大量空间,所以出现了utf8(之和Unicode一一对应)--》解决了Unicode内存占用过多 的问题

现在所有电脑都是这样的--》内存中Unicode取,存用utf8(硬盘)全世界的人写代码/写文件都用utf8

内存中为什么不用utf8?utf8和gb2312/fuck都没有转换关系,因此内存都要用unicode

未来迟早有一天内存要用utf8

gb2312和gbk的区别

先能用就行,不常用的词+繁体字

gb2312--》常用词

gbk--》所有字

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

用什么编码写,就用什么编码读

写用utf8,读用gbk--》乱码

写用utf8,存用gbk --》乱码,读用--》除非你找日文编码的の(这是中文的一个符号,不是日文的の)

乱码发生在读的时候

用utf8的字符放入gbk

编码和解码

unicode编码--》(编码)utf8从内存到硬盘

utf8--》(解码)unicode从硬盘到内存

现在内存只有Unicode编码

python编辑器(文本编辑器)解释python代码的流程

1.python解释器相当于文本编辑器,把代码读入python解释器--》字符编码-》python2默认ascII码,python3默认utf8

中文#gbk编码的中文加上coding的头

1.加上coding头

2.识别代码--》print有意义

#coding gbk#告诉python解释器用gbk去完成第一步,读入字符
中文

3.产生结果--》跑到终端--》字符编码

终端有一个特性:你的电脑是什么编码的,就按照什么编码来,windows终端是utf-8

python2和python3的编码区别

python2

python2有两种存储变量的形式,第一种:unicode;第二种:按照coding头来的

假设python2用utf8存储x='中文',当你print(x)的时候,终端接收gbk的变量x,但是windows终端编码是utf8,会乱码

假设python2用unicode存储,终端接受的是unicode,windows终端编码是utf8还是gbk重要吗?不会乱码=

# coding:gbk
lt1 = '中文' # utf存储的
# lt1 = ['中文'] # []让他不用终端的编码转化,显示01010101001
print lt1 # ['\xe4\xb8\xad\xe6\x96\x87'] lt2 = u'中文' # u'中文'让他变成unicode # 早期用python2定义中文,必须得加上u,让他变成unicode存储
# lt2 = [u'中文']
print lt2 # '中文'

python3

python3只有一种存储变量的形式,unicode

python3用unicode存储,终端接收的是unicode,widonws终端编码是utf还是gbk不重要,不会乱码

lt1 = '中文'  # == u'中文'
print(lt1)

字符编码到python编辑器流程的更多相关文章

  1. 字符编码和Python代码操作文件

    字符编码和Python代码操作文件 读写模式之a模式 # a模式 只追加模式 # 路径不存在:自动创建 with open(r'a.txt','a',encoding='utf8') as f: pa ...

  2. 字符编码和python中的文件处理

    字符编码与python文件处理 ---------------- 字符编码 1.常见的编码 ASCII: 美国人发明的,只编码英文字母和符号,1个字节. GB2312: 中国人发明的,增加了中文汉字和 ...

  3. 字符编码,python解释器------总结

    目录 1. 编码: 1.字符编码 2. 编码的历史 3. 编码和解码 2. python解释器 解释代码的流程 1. 读取文本到解释器 2. 识别代码(检查语法问题) 3. 往终端打印 1. 编码: ...

  4. 字符编码和python文件操作

    字符编码和文件操作 目录 字符编码和文件操作 1. 字符编码 1.1 什么是字符编码 1.2 字符编码的发展史 1.2.1 ASCII码 1.2.2 各国编码 1.2.3 Unicode 1.3 字符 ...

  5. 字符编码和python .encode().decode()方法

    字符编码与encode.decode的问题:  用8个开关表示世界万物   ASCII :  American Standard Code for Information Interchange,美国 ...

  6. 字符编码和python使用encode,decode转换utf-8, gbk, gb2312

    ASCII码 标准ASCII码使用7位二进制数表示大写或小写字母,数字0到9标点符号以及在美式英语中使用的特殊控制字符. 在标准ASCII码中,最高位(b7)用作奇偶校验位,所谓奇偶校验,是指在代码传 ...

  7. Python中的字符串与字符编码

    本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...

  8. Python的字符编码

    Python的字符编码 1. Python字符编码简介 1. 1  ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ...

  9. 深入理解Python的字符编码

    原文:http://lukejin.iteye.com/blog/598303 在处理中文的时候,我们有时候会碰到中文乱码的问题. 究其根本原因是正确的字节序列按照错误的编码方式解码成字符 或者正确的 ...

随机推荐

  1. web开发调用百度地图API + AK申请

    web开发调用百度地图API + AK申请 要使用百度地图的API我们首先需要在我们的html页面引入js----`` 如何获取百度地图ak: 1.登陆百度地图开发者平台 2.注册百度开发者账号并登陆 ...

  2. 6-23 EDM的报告

    EDM营销(Email Direct Marketing)也即:Email营销. 目的:数据分析.制定一对一的个性化数据.提高用户访问率.EDM是一对一的沟通,让你的用户感觉到尊重, 方式:选择强有力 ...

  3. PHP面试 PHP基础知识 三(运算符)

    PHP运算符 PHP的运算符的错误控制符@ PHP支持一个错误运算符:@.当将其放在一个PHP表达式之前,该表达式可能产生的任何错误信息都将会被忽略掉. PHP运算符 运算符的优先级 着重记忆运算符 ...

  4. 面向对象(四)——classmethod、staticmethod装饰器(绑定方法与非绑定方法)

    classmethod.staticmethod装饰器 一.绑定方法与非绑定方法 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): (1) 绑定到类的方法:用classmethod ...

  5. C++公有继承、私有继承以及友元

    公有继承: 基类的成员在派生类中维持原来的访问权限,基类的publice成员为派生类的public成员,基类的protected成员为派生类的protected成员,基类的private成员在派生类的 ...

  6. VSCode运行JavaScript代码

    方式一(推荐): 安装插件 open in window, 然后option+b

  7. 第三记 Java面向对象

    相信很多人都有听到,见到这么一句话:Java是一门面向对象编程的语言,但是又是否对这句话有了自己的理解呢? 一.面向对象 面向对象是一种新兴的程序设计方法,也可以说是一种新的程序设计规范(paradi ...

  8. frp 配置多个 web 项目,无需购买域名 (访问内网可视化界面,jupyter noterbook, visdom, tensorboard)

    frp 配置多个 web 项目,无需购买域名 简单配置,参考 前言: 网上也有很多教程包括官方文档,都需要购买域名,并且把 frpc.ini 中 [web]节配置的  custom_domains 的 ...

  9. linux 7 添加永久路由方法

    linux 7 添加永久路由 用route命令添加 仅仅是当前状态下生效,一旦重启就会失效. 所以要在/etc/sysconfig/network-scripts/这个路径下添加一个文件route-{ ...

  10. matplotlib.pyplot 属性用法

    import matplotlib.pyplot as plt x_values = list(range(1, 1001)) y_values = [x**2 for x in x_values] ...