一直对于字符编码不是很清晰,只知道所有都sublime编辑文档时候设置:文档编码为UTF-8、PHP的header也就是浏览器http响应头显示UTF-8、HTML的meta信息也声明为UTF8、数据库字符集选择utf8、排序规则选择utf-8_ general_ci,但是一直不知道他们是什么来的,今天刷下百度百科:
有一篇写的太好了:
https://www.zhihu.com/question/23374078
以上总结就是 ASCII => GB2312 => GBK => Unicode ,半角字符指的是ASCII的127个特殊字符。中文字符是两个8位二进制数字代表的字符(所以两个字节)
那么unicode跟utf-8、utf -16、utf-32有什么关系呢?
所以utf-8代表的unicode码,对于ASCII就能表示的字符,内存是浪费的,因为有个字节是空的。utf比gbk是更加浪费内存的。
简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.
https://www.wenjiwu.com/doc/epqkni.html
为什么所有网站更青睐于UTF-8呢?
utf-8更多字符、就已经完全压下占内存多的劣势了。
utf8mb4 -- UTF-8 Unicode
utf8mb4_general_ci
创建数据库的时候这些mb4又是什么意思呢?还有这些排序规则怎么选择呢!