字符编码

python解释器运行一个py文件(xxx.py)步骤

    1.将python解释器的代码由硬盘读到内存

    2.将xxx.py以普通文本文件形式读到内存

    3.python读取文件内容 识别python语法  执行相应操作

    ps:普通的文本编辑器与python解释器前两步都是一样的

 

#字符编码:

字符编码表就是字符与数字的对应关系

    a  0

    b  1

    a 00

    b 01 

    c 11

    d 10

    

ASCII码表

用八位二进制表示一个英文字符   所有的英文字符+符号最多也就在125位左右

0000 0000

1111 1111 

 

 

GBK

用2Bytes表示一个中文字符 还是用1Bytes表示一个英文字符

0000 0000 0000 0000

1111 1111 1111 1111   最多能表示65535个字符

 

基于上面的推导步骤 任何一个国家要想让计算机支持本国语言都必须自己创建一个字符与数字的对应关系

日本人  shift

韩国人  fuck

万国码unicode

统一用2Bytes表示所有的字符   

a 0000 0000 0010 1010

 

1.浪费存储空间

2.io次数增减,程序运行效率降低(致命)

 

 

当内存中的unicode编码格式数据存到硬盘的时候,会按照utf-8编码

unicode transformation format

 

会将unicode的英文字符由原来的2Bytes变成1Bytes

会将unicode中文字符由原来的2Bytes变成3Bytes

 

 

 

 

现在的计算机

    内存都是unicode

    硬盘都是utf-8

 

 

 

(需要掌握的)

unicode的两个特点

    1.用户在输入的时候,无论输什么字符都能够兼容万国字符

    2.其他国家编码的数据由硬盘读到内存的时候unicode与其他各个国家的编码都有对应关系

    

(必须掌握的)

    数据由内存保存到硬盘

    1.内存中的unicode格式二进制数字    >>>>编码(encode)>>>>>              utf-8格式的二进制数据

    

    硬盘中的数据由硬盘读到内存

    1.硬盘中的utf-8格式的二进制数据    >>>>>解码(decode)>>>>>             内存中unicode格式的二进制数据

 

 

    

    

    

    

(******)

保证不乱码在于

    文本文件以什么编码编的就以什么编码解

 

    

 

python2

    将py文件按照文本文件读入解释器中默认使用ASCII码(因为在开发python2解释器的unicode还没有盛行)

python3    

    将py文件按照文本文件读入解释器中默认使用utf-8

 

文件头  

# coding:utf-8    

    1.因为所有的编码都支持英文字符,所以文件头才能够正常生效

 

基于Python解释器开发的软件,只要是中文,前面都需要加一个u

为了的就是讲python2(当你不指定文件头的时候,默认用ASCII存储数据,如果指定文件头那么就按照文件头的编码格式存储数据)

    

    

    

 

    

python3中字符串默认就是unicode编码格式的二进制数

  

补充:

    1.pycharm终端用的是utf-8格式

    2.windows终端采用的是gbk

 

 

乱码:字符不能够正常显示      编码不一致

 

八位二进制也叫8bit(******)

8bit = 1Bytes

1024Bytes = 1KB

1024KB = 1MB

1024MB = 1GB

1024GB = 1TB

1024TB = 1PB

....

 

 

"""

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/chendaodeng/p/11151849.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值