关于UTF-8ASCIIUnicodegbkgb2312之间的关系的笔记

Posted wystanxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于UTF-8ASCIIUnicodegbkgb2312之间的关系的笔记相关的知识,希望对你有一定的参考价值。

一直对于字符编码不是很清晰,今天各种百度百科刷一下,最后看到一篇文章:

https://www.zhihu.com/question/23374078

写的实在太好了,以上总结就是 ASCII => GB2312 => GBK =>  Unicode。

unicode跟utf-8、utf -16、utf-32有什么关系呢?

Unicode 是「字符集」
UTF-8 是「编码规则」
字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)
编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)
转载自:https://www.zhihu.com/question/23374078
unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式。 utf的推出也是为了解决unicode在不同机器之中的传输差异问题、以及内存浪费的问题,比如2个8bit传输一个英文字母,那么高位字节就全是0000而浪费了一倍的内存。 所以utf-8代表的unicode码,对于ASCII就能表示的字符,内存是浪费的,因为有个字节是空的。utf比gbk是更加浪费内存的。 utf8\\16\\32是unicode的三套编码方式,utf-8之中字符是以8位序列来编码的,16、32同理。考虑到最初的目的,通常说的unicode编码指的是utf-16 (unicode的最初目标是用1个16位的编码来为超过65000个字符提供映射,但仍然不能覆盖历史上所有文字以及不能解决传输上的问题)。

为什么所有网站更钟情于utf-8呢?

UTF-8 的几个优势

1. 乱码不会扩散, GB2312 在丢失一字节等情况下会造成后续所有文字变成乱码2. 不会产生错误的搜索结果, GB2312 在搜索的时候相邻两个中文会拼出一个新的字符,导致出现错误的搜索结果3. 更大的字符集4. 很多语言直接支持 UTF-8,部分语言存储字符串到内存时直接使用 UTF-8编码。5. 与 GB2312/GB18030 相比, UTF-8是一个通用解决方案6. Unicode 一直有人维护,而 GB18030 下一次更新不知道会是什么时候了。
另
对于中文, UTF-8 和 GB2312 在 gzip 压缩后都差不多,所以用来做网页对带宽影响很小

作者:李道兵
链接:https://www.zhihu.com/question/19817672/answer/20527784
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

GB2312、GBK、GB18030 这几种字符集的主要区别是什么?

http://www.cnblogs.com/malecrab/p/5300497.html

 

创建数据库的时候众多字符编码、排序规则又该如何选择呢、

 

 sublime的常用设置

 

{
    // 配色选择
    "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
    // 字体大小
    "font_size": 11,
    "ignored_packages":
    [
        "Vintage"
    ],
    // 显示编码
    "show_encoding": true,
    "show_line_endings": true,
    //把 tab 转换成4个空格
    "tab_size": 4,
    //把tab 转换成 空格
    "translate_tabs_to_spaces": true ,
    //主题选择 
    "theme": "Adaptive.sublime-theme"
}

 

推荐书籍:

蒋本珊 -《计算机组成原理》

 

以上是关于关于UTF-8ASCIIUnicodegbkgb2312之间的关系的笔记的主要内容,如果未能解决你的问题,请参考以下文章

关于负载均衡

01_关于CAR_HMI2的一些想法

关于 AFNetworking 2

关于Javascipt基础2

关于二进制运算

关于二进制运算