zoukankan      html  css  js  c++  java
  • 字符编码,python2和python3编码的区别

    1.字符编码

    字符(存储信息的东西) 编码(01010101010)——》键盘。

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

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

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

    1.1 ascii编码 --》英国人

    ascii :只用于英文,最多只能用 8 位来表示(一个字节或者一个字母),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

    python 中

    ascii编码的转换关系的方法:

    print(chr(65)) # A
    print(ord('a')) # 97 查找ascii 表中的相对元素的含义。

    1.2 unicode(可识别万国码)

    unicode:万国码,32为表示一个东西,2**32.

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

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

    • unicode存的时候多占用空间,所以出现了utf8(只和unicode一一对应)--》解决了unicode内存占用的问题

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

      未来有一天会用到:utf-8

    1.3 utf-8

    utf-8:给unicode压缩,用尽量少的东西表示一个的东西,以8位单位的utf-8

    最少用一个字节 == 8位表示,最多用4个字节 == 32为表示。中文:3个字节 = 24位表示。

    1.4 unicode与ascii的表示

    在硬盘存储时unicode消耗内存大 ,但unicode表示东西更多。一句话:浪费内存空间。

    utf-8归纳:适用于数据保存,占用空间小。

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

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

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

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

    1.5编码和解码

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

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

    现在内存只有unicode编码

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

    2.02 python2和python3编码的区别

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

    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不重要,不会乱码
    lst = "中文"   # == u'中文'
    print(lst)
    

    列:

    # coding:gbk
    # print('中文%s'%('描述'))  # 用gbk写的,但是python2默认用acill读取字符
    
    
  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/WQ577098649/p/11534158.html
Copyright © 2011-2022 走看看