zoukankan      html  css  js  c++  java
  • 编码的问题

          早期计算机是美国发明的. 普及率不高, 一般只是在美国使用. 所以. 最早的编码结构就是按照美国人的习惯来编码的. 对应数字+字母+特殊字符一共也没多少. 所以就形成了最早的编码ASCII码. 直到今天ASCII依然深深的影响着我们.

          ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字⺟母的一套电脑编码系统,主要用于显示现代英语和其他⻄西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
          随着计算机的发展. 以及普及率的提高. 流行到欧洲和亚洲. 这时ASCII码就不不合适了. 比如: 中文汉字有几万个. 而ASCII最多也就256个位置. 所以ASCII不行了了. 怎么办 呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境.
            比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使⽤用计算机了.
           GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英文肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII.
           国标码的弊端:只能中国用.日本就垮了.所以国标码不满足我们的使用.这时提出了一个万国码Unicode.
           unicode一开始设计是每个字符两个字节.设计完了.发现我大中国汉字依然无法进行编码.只能进行扩充.扩充成32位也就是4个字节.这回够了.但是.问题来了.中国字9万多.而unicode可以表示40多亿.根本用不了.太浪费了.于是乎,就提出了新的UTF编码.
          可变长度编码UTF-8:每个字符最少占8位.每个字符占用的字节数不定.根据文字内容进行具体编码.比如.英文.就一个字节就够了.汉字占3个字节.这时即满⾜足了中文.也满足了节约.也是目前使用频率最高的一种编码。 
        UTF-16:每个字符最少占16位.GBK:每个字符占2个字节, 16位.
    单位转换:
    8bit = 1byte
    1024byte = 1KB
    1024KB = 1MB
    1024MB = 1GB
    1024GB = 1TB
    1024TB = 1PB
    1024TB = 1EB
    1024EB = 1ZB
    1024ZB = 1YB
    1024YB = 1NB
    1024NB = 1DB

  • 相关阅读:
    mysql导入报错: Incorrect string value: 'xF0xA0x83x8CxE5x8D...' for column 'q_title' at row 4
    spring原理解析
    php连接mysql报错The server requested authentication method unknown to the client
    springmvc快速入门
    set集合
    Linux安装MySQL5.7
    Java中jar包获取资源文件的方式
    ⚡王道数据结构绪论⚡
    ❤️排序❤️
    😊考研线代知识点汇总😊
  • 原文地址:https://www.cnblogs.com/l1222514/p/10032029.html
Copyright © 2011-2022 走看看