• Python基础之初始编码


    前言

    程序中的编码问题你不搞明白,那么你的程序生涯中它会像幽灵一样伴随着你的职业生涯。

    首先要搞清楚一个概念:计算机中认识什么?它认识的是010101这种二进制,却不认识中文不认识英文
    那么,这个时候问题来了,我们写的英文,写的汉字是怎么转变成机器识别的010101的二进制的数字的呢?

    ascii码闪亮登场

    0000 0001 8位(bit) == 1个字节(byte)

    1024byte == 1KB

    1024KB == 1MB

    1024MB == 1GB

    1024GB == 1TB

    1024TB == 1PB

    ascii码

    在最初设计ascii码之初,设计者并没有想到有一天计算机会被全世界应用的如此广泛,所以它们只设定了
    7位的0000001数字去映射一个英文,每一位都是01两种可能,共2的7次方128种可能,但是预留了一位 0 以备不时之需
    所以8位代表一个字节,但是让它不是黄种人的码,他解译不了中文

    中文大概有9W多个字,2的16次方也仅仅才6w多,还是包含不了全部的中文,为了解决这个全球化的问题,老美创建了一
    个万国码unicode

    unicode

    1个字节8位代表256种可能,表示所有的英文,特殊字符,数字等等
    最开始给了中国2个字节,8位代表一个字节,那么2的16次方6W多种可能也是包含不够
    4个字节 2的32次方 代表一个中文字体 包含了全世界的可能,有点浪费了,为了解决这个
    问题,utf-8 闪亮登场

    utf-8

    3个字节2的16次方种可能 代替一个中文

    GBK(仅限国内使用,里面全是中文的映射)

    2个字节2的8次方种可能 代表一个中文(但是还是包含不够所有的中文)

  • 相关阅读:
    C++异常:exception
    C++关键字:explicit
    C++关键字:重学记录
    Unity jointmoto
    hashtable和hashmap
    Spring MVC 笔记 概述
    SQL上门2
    面试:A
    Java 初学者
    SQL上门
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/9826155.html
Copyright © 2020-2023  润新知