win10安装mysqld8.0.13时候报错,mysqld--initialize--c。。。错误:执⾏ mysqld --initialize --console 命令时
解决⽅法:在配置⽂件 my.ini 时rhel7
java经典电子书打包把所有的字符集编码设置 utf8 通通换成 utf8m4
原因:
⼀、简介
MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门⽤来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,⼀般情况下使⽤utf8也就够了。
log4j2阿里⼆、内容描述
那上⾯说了既然utf8能够存下⼤部分中⽂汉字,那为什么还要使⽤utf8mb4呢? 原来mysql⽀持的 utf8 编码最⼤字符长度为 3 字节,如果遇到 4 字节的宽字符就会插⼊异常了。三个字节的 UTF-8 最⼤能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多⽂种平⾯(BMP)。也就是说,任何不在基本多⽂本平⾯的 Unicode字符,都⽆法使⽤ Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是⼀种特殊的 Unicode 编码,常见于 ios 和 android ⼿机上),和很多不常⽤的汉字,以及任何新增的 Unicode 字符等等。
java工程师面试自我介绍三、问题根源
手机mysql安装配置教程>silvaco教程最初的 UTF-8 格式使⽤⼀⾄六个字节,最⼤能编码 31 位字符。最新的 UTF-8 规范只使⽤⼀到四个字节,最⼤能编码21位,正好能够表⽰所有的 17个 Unicode 平⾯。
utf8 是 Mysql 中的⼀种字符集,只⽀持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多⽂本平⾯。
Mysql 中的 utf8 为什么只⽀持持最长三个字节的 UTF-8字符呢?我想了⼀下,可能是因为 Mysql 刚开始开发那会,Unicode 还没有辅助平⾯这⼀说呢。那时候,Unicode 委员会还做着 “65535 个字符⾜够全世界⽤了”的美梦。Mysql 中的字符串长度算的是字符数⽽⾮字节数,对于 CHAR 数据类型来说,需要为字符串保留⾜够的长。当使⽤ utf8 字符集时,需要保留的长度就是 utf8 最长字符长度乘以字符串长度,所以这⾥理所当然的限制了 utf8 最⼤长度为 3,⽐如 CHAR(100) Mysql 会保留 300字节长度。⾄于后续的版本为什么不对4 字节长度的 UTF-8 字符提供⽀持,我想⼀个是为了向后兼容性的考虑,还有就是基本多⽂种平⾯之外的字符确实很少⽤到。
要在 Mysql 中保存 4 字节长度的 UTF-8 字符,需要使⽤ utf8mb4 字符集,但只有 5.5.3 版本以后的才⽀持(查看版本: select version();)。我觉得,为了获取更好的兼容性,应该总是使⽤ utf8mb4 ⽽⾮ utf8. 对于 CHAR 类型数据,utf8mb4 会多消耗⼀些空间,根据 Mysql 官⽅建议,使⽤ VARCHAR 替代 CHAR。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论