再次学习编码

作者: aubell | 来源:发表于2020-04-04 11:42 被阅读0次

Ascii

  • Ascii编码表共128个字符
  • 前32个被称为不可见字符
  • 后96个被称为可见字符

相对可见

  • 不可见字符中
    回车,换行,制表位三个字符经常出现在文本文件中,我称之为相对可见:
    CR(0x0D),LF(0x0A),TAB(0x09)

相对不可见

  • 可见字符中
    空格,SPACE(0x20)性质与TAB差不多,可以在文本文件中显示为空白,本身属于可见字符,因为显示为空白,所以也可以说它相对不可见
    Rubout(0x7F)是真的不可见,文本文件中很少出现
    这两个字符我称之为相对不可见字符

文本文件中常见的Ascii字符

  • 96个可见字符去掉Rubout
  • 3个不可见字符CR,LF,TAB
    这98个字符经常出现在Ascii文本文件中

GB2312

保持了对Ascii的兼容,因为高位置1,所以可以直接与Ascii区分

  • 首字节在A1-F7之间
  • 尾字节在A0-FE之间,不使用FF

使用较小的扩展表范围,能够很容易与Ascii区分。
由此可见,扩展Ascii表是所有乱码的最终根源。

Ascii扩展字符

Ascii扩展字符,也使用了8bit中的高位1,所以,这是最初所有乱码的根源。当汉字不慎被识别为Ascii扩展表中的字符时,乱码就产生了。

GBK

依然是良好的设计,保持着克制,继续兼容GB2312和Ascii表。

  • 首字节在81-FE之间,完全处于扩展表中,不在Ascii表中
  • 尾字节在40-FE之间,拆开来看,基本都是可见的Ascii字符
  • 尾字节依然不使用FF
  • 且不使用7F

GB18030

有很多号称实现了GB18030的系统和软件,但我从没有见过其中的少数民族字符。既没有输入过,也没有见过。只见过少数藏文字符,但是文件编码是Unicode格式,也许字库是GBK顺序索引的。我怀疑,暂时还没有系统实现GB18030的所有四字节部分。

GB18030只是继续兼容GBK的口头标准,非事实标准。

UTF-8

真是一个良好的设计,对Ascii保持兼容。且内容含蓄、克制。很容易识别其中的各种字符。

  • 单字节的都是Ascii码,小于128
  • 多字节的,最高字节开头有几个连续的1,就表示一共有几个字节
  • 多字节的,从高向低,每个字节中,第一个0以后的,就是有效的数据位

唯一的缺点是汉字编码有点长,需要三个字节。

UTF-16

糟糕的设计。简单的存储码位。无论什么内容都可以出现在文本文件中。真担心它的四字节部分如何实现。
把文本文件搞的跟二进制文件没有界限。

总结

UTF-8似乎已经成为事实上的编码标准。

假如当初直接把GBK码表简单映射到Unicode中该是一件多么美妙的事。那么现在GBK和Unicode之间就不需要查表转换了。

相关文章

  • 再次学习编码

    Ascii Ascii编码表共128个字符 前32个被称为不可见字符 后96个被称为可见字符 相对可见 不可见字符...

  • mysql写入中文变问号 write Chinese to my

    首先运行如下命令,查看编码: 可以看到客户端的编码是latin1然后运行: 再次查看编码: 再次查看数据时就会正确...

  • python批量查看修改文件编码

    使用python批量查看文件编码,或者批量修改文件编码 代码 结果 查看文件编码 执行编码转换 再次查看转换后的编码

  • 编码学习

    编码一直是个令人头痛的问题,但是编码又是非常的重要 ANSI、GBK、GB2312、UTF-8、GB18030、U...

  • 编码学习

    数据的存储 数据都是以二进制的形式存进电脑的,比如现在一个“黄”字,不可能是在磁盘上原模原样的刻了一个“黄”,而是...

  • MvcHtmlString HtmlHelper 开发MVC用

    MvcHtmlString 官方文档解释为:表示不应再次进行编码的 HTML 编码的字符串。在MVC 后台生成HT...

  • 20-MySQL编码设置

    一、查看编码命令 二、修改MySQL的数据目录下的 my.ini 配置文件 三、重启服务 四、再次查看编码

  • 树结构入门教程-赫夫曼解码

    上节我们学习赫夫曼编码的过程,这节我们来学习赫夫曼编码的逆操作---------->解码操作,由于我们对编码的过程...

  • 2018-11-08

    今天,我们深入学习了字符串。学习了字符串编码: python中的字符采用的是Unicode编码 a.什么是编码 ...

  • 规范

    编码规范学习中。

网友评论

    本文标题:再次学习编码

    本文链接:https://www.haomeiwen.com/subject/qkpdphtx.html