编程语言爱好者

再次学习编码

2020-04-04  本文已影响0人  aubell

Ascii

相对可见

相对不可见

文本文件中常见的Ascii字符

GB2312

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

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

Ascii扩展字符

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

GBK

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

GB18030

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

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

UTF-8

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

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

UTF-16

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

总结

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

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

上一篇 下一篇

猜你喜欢

热点阅读