zoukankan      html  css  js  c++  java
  • 字符编码到python编辑器流程

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

    键盘发送的是电流--》主机(内存)接受到电流(当作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  # ['xe4xb8xadxe6x96x87']
    
    lt2 = u'中文'  # u'中文'让他变成unicode  # 早期用python2定义中文,必须得加上u,让他变成unicode存储
    # lt2 = [u'中文']
    print lt2  # '中文'
    

    python3

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

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

    lt1 = '中文'  # == u'中文'
    print(lt1)
    
  • 相关阅读:
    image 和 barplot 的组合
    par函数mgp 参数-控制坐标轴的位置
    R语言绘图时的边界碰撞问题
    R语言绘制花瓣图flower plot
    mothur 计算稀释性曲线
    R语言 vegan包计算物种累计曲线
    R语言数据框小技巧
    tophat-fusion 鉴定融合基因
    FusionCancer-人类癌症相关的融合基因的数据库
    rrnDB数据库简介-16S基因多拷贝数的证据
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/11535259.html
Copyright © 2011-2022 走看看