zoukankan      html  css  js  c++  java
  • day08

    字符编码

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

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

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

    ASCII码的转换关系

    print (chr(65))
    print(ord('a'))
    

    Unicode存储占用太多空间,出现了Utf-8(和Unicode--对应)解决了Unicode内存占用

    现在电脑都是内存中Unicode取,存用utf-8存

    为什么内存中不用Utf-8和gb2312都没有转换关系,所以内存要用Unicode

    gb2312和gbk的区别

    gb2312是中国早期的编码,其中为常用词

    gbk是后期完善的,包含了中文的所有字

    用什么编码写,就用什么编码读,否则会出现乱码

    编码和解码

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

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

    现在内存只有Unicode编码

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

    1.python解释器相当于文本编译器,先把代码读入python解释器--字符编码 上coding

    2.识别代码--print有意义--语法问题

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

    终端有一个特性:电脑是什么编码,就会按照什么编码来,windows终端是gbk

    python2和python3的编码区别

    python2

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

    python2默认用ASCII读取字符

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

    假设python2用Unicode存储,终端接受的是Unicode,windows终端编码不管是什么都不会乱码

    # 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存储,不管终端编码是什么,都不会乱码

    lt1 = '中文'  # == u'中文'
    print(lt1)
    
  • 相关阅读:
    实战SpringCloud响应式微服务系列教程(第八章)构建响应式RESTful服务
    说说hashCode() 和 equals() 之间的关系?
    说说Object类下面有几种方法呢?
    Redis中是如何实现分布式锁的?
    从实践角度重新理解BIO和NIO
    数据的异构实战(一) 基于canal进行日志的订阅和转换
    The base command for the Docker CLI.
    Installing Jenkins to Centos Docker
    Docker Community Edition for CentOS
    Kafka自我学习-报错篇
  • 原文地址:https://www.cnblogs.com/TZ0503/p/11535446.html
Copyright © 2011-2022 走看看