一直对于字符编码不是很清晰, 只知道所有都 sublime 编辑文档时候设置: 文档编码为 UTF-8PHP 的 header 也就是浏览器 http 响应头显示 UTF-8html 的 meta 信息也声明为 UTF8 数据库字符集选择 utf8 排序规则选择 utf-8_ general_ci, 但是一直不知道他们是什么来的, 今天刷下百度百科:
有一篇写的太好了:
https://www.zhihu.com/question/23374078
以上总结就是 ASCII => GB2312 => GBK => Unicode , 半角字符指的是 ASCII 的 127 个特殊字符中文字符是两个 8 位二进制数字代表的字符 (所以两个字节)
那么 unicode 跟 utf-8utf -16utf-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 又是什么意思呢? 还有这些排序规则怎么选择呢!
来源: http://www.bubuko.com/infodetail-2499176.html