关于前端:有关ASCIIUnicodeUTF8GBK的一些知识

32次阅读

共计 1254 个字符,预计需要花费 4 分钟才能阅读完成。

理解:ASCII 码

  • 在计算机外部,所有数据都应用二进制示意。每一个二进制位(bit)有 0 和 1 两种状态, 因而 8 个二进制位就能够组合出 256 种状态,这被称为一个字节 (byte)。一个字节一共能够用来示意 256 种不同的状态,每一个状态对应一个符号,就是 256 个符号,从 0000000 到 11111111。
  • ASCII 码: 上个世纪 60 年代,美国制订了一套字符编码,对英语字符与二进制位之间的关系,做了对立规定。这被称为 ASCII 码。ASCIIl 码一共规定了 128 个字符的编码,比方空格“SPACE” 是 32(二进制 00100000),大写的字母 A 是 65(二进制 01000001)。这 128 个符号(包含 32 个不能打印进去的管制符号),只占用了一个字节的前面 7 位,最后面的 1 位对立规定为 0。
  • ASCII 的毛病:

    • 不能示意所有字符。
    • 雷同的编码表示的字符不一样: 比方,130 在法语编码中代表了é,在希伯来语编码中却代表了字母 Gimel (:)

理解: Unicode 编码

  • 乱码 : 世界上存在着多种编码方式,同一个二进制数字能够被解释成不同的符号。因而,要想关上一个文本文件,就必须晓得它的编码方式,否则用谬误的编码方式解读,就会呈现乱码。
  • Unicode: 一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独无二的编码,应用 Unicode 没有乱码的问题。
  • Unicode 的毛病:Unicode 只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储: 无奈区别 Unicode 和 ASCII: 计算机无法辨别三个字节示意一个符号还是别离示意三个符号。另外,咱们晓得,英文字母只用一个字节示意就够了,如果 unicode 对立规定,每个符号用三个或四个字节示意,那么每个英文字母前都必然有二到三个字节是 0,这对于存储空间来说是极大的节约。这时咱们就须要一个对 Unicode 编码的实现。

理解:UTF-8

  • UTF- 8 是在互联网上应用最广的一种 Unicode 的实现形式。
  • UTF- 8 是一种变长的编码方式。它能够应用 1 - 6 个字节示意一个符号,依据不同的符号而变动字节长度。
  • UTF- 8 的编码规定:

    • 对于单字节的 UTF- 8 编码,该字节的最高位为 0,其余 7 位用来对字符进行编码(等同于 ASCIl 码)。
    • 对于多字节的 UTF- 8 编码,如果编码蕴含 n 个字节,那么第一个字节的前 n 位为 1,第个字节的第 n + 1 位为 0,该字节的残余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为 ”10″,其余 6 位用来对字符进行编码。

理解:GBK

GBK: 专门用来解决中文编码,双字节。

是在国家标准 GB2312 根底上扩容后兼容 GB2312 规范。

蕴含全副中文字符。

UTF-8: 解决国内上制度的一种多字节编码,对英文应用 8 位(1 个字节),中文应用 24 位(3 个字节)来编码。

对于英文字符较多的论坛实用于 UTF- 8 节俭空间。

蕴含全世界所有国家须要用到的字符。

简言而知,GBK 编码方式的编码是以中国国情而发明的,在国内上的兼容性不好,这也是为什么大多数的网页是应用 UTF- 8 编码而不是 GBK。

正文完
 0