mysql utf8mb4 编码

13 篇文章 0 订阅

ySQL server version 5.5.3 or higher 引入了 utf8mb4 编码。

Utf8 与 Utf8mb4 的区别

Utf8 只能支持 1~3 个字节的字符

Utf8mb4 则可以支持 4 个字节的字符,而 emoji 则是以 4 个字节进行存储的。 所以要支持 emoji 则必须使用 Utf8mb4.

数据库与数据集表的 charset 是否需要同时设置

参考 http://stackoverflow.com/questions/24356090/difference-between-database-table-column-collation

如果数据表设置了字符集,那么数据库在创建的时候就不需要了。如果数据库创建的时候指定了字符集,而建表的时候没有指定,那么数据表会继承数据库的字符集设置。

所以,像 wordpress 这种,在数据表中指定了字符集的做法,理论上就不需要在建立数据库的时候再指定字符集了。

但是,实际中,我还是觉得应该在建数据库的时候指定字符集。仍然以 wordpress 为例,虽然官方的建表脚本指定了字符集,但是这并不代表所有的三方插件也会遵守这个规范。假如一个三方插件没有指定字符集,那么就会默认采用数据库的字符集。这样做就非常保险。

团队项目中,也会有同样的问题,你也无法完全确保其他人每次建表时都指定了字符集。

所以好习惯应该是

建数据库时指定字符集
建数据表时也指定字符集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值