文档章节

mysql字符集utf8 和utf8mb4编码问题

王子城
 王子城
发布于 2018/08/23 15:26
字数 485
阅读 153
收藏 2

    最近看了一篇文章是关于Mysql中utf-8编码问题的,我们在Mysql中用到的utf8实际上不是真正的 UTF-8,在Mysql中utf8mb4才是真正的UTF-8。

    在有些地方看到说utf8mb4相比于utf8是为了解决emoji(就是我们聊天的时候笑脸表情)问题,感觉这种说法对但是不完全对。utf8mb4相当于utf8的一个扩展,出现utf8mb4是因为现在Mysql中的utf8已经不能满足我们对字符编码的需求了。

    Mysql从4.1 版本开始支持 UTF-8,最大字符长度为 3 字节,三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多文平面(BMP)。也就是说,任何不在基本多文平面的 Unicode字符,都无法使用MySQL原有的 utf8 字符集存储。这些不在BMP中的字符包括哪些呢?最常见的就是Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和一些不常用的汉字,以及任何新增的 Unicode 字符等等。于是在MySQL5.5.3版本后就有了utf8mb4,它支持四个字节编码在utf8消耗空间一些,但是它可以支持跟多的字符。

    所以,在我们最新设计数据库的时候最好使用utf8mb4字符集,同时使用varchar代替char类型。

    

参考文章:

记住,永远不要在MySQL中使用“utf8”编码

清官谈mysql中utf8和utf8mb4区别

mysql字符集 utf8 和utf8mb4 的区别

© 著作权归作者所有

上一篇: 适配器模式
下一篇: Spring IoC概念
王子城
粉丝 11
博文 48
码字总数 36693
作品 0
武汉
程序员
私信 提问
关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析

1、问题:mysql 遇到某些中文插入异常 最近有同学反馈了这样一个问题: 上述语句在脚本中 load 入库的时候会 hang 住,web 前端、命令行操作则要么抛出 Incorrect string value: 'xF0xA1x8B...

大数据之路
2014/11/12
16.7K
13
【数据库】MySQL中保存emoji特殊字符

如果想要在MySQL数据库中保存特殊字符,如emoji特殊字符🎱 😇。若采用之前字符集编码utf8或者其他的,当执行插入数据库操作后,数据库中却找到插入的特殊字符。原因是这些特殊字符所占用...

zrunker
2017/11/25
0
0
mysql支持emoji表情

最近开发的iOS项目因为需要用户文本的存储,自然就遇到了emoji等表情符号如何被mysql DB支持的问题。困扰了数日,在就要绝望放弃的边缘,终于完成了转换和迁移。在此特别分析和整理,方便更多...

蓝狐乐队
2015/09/10
196
0
mysql utf8mb4字符集,存储emoji表情

字符集utf8mb4 utf8mb4兼容utf8,且比utf8能表示更多的字符。 看unicode编码区 从1 ~ 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8mb4扩充区,什么时候你需要存储那些...

我心中有猛狗
03/25
20
0
spring,web,java 开发中乱码解决方案

修改HTML/JSP页面编码格式: 或<%@ page contentType="text/html; charset=UTF-8"%> web.xml中的编码设置( 需要设置forceEncoding参数值为true,强制以目标编码为编码格式 ) CharacterEncodin......

ybyron
2017/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java 三元表达式

例子:C=A>B ? 100 :200; 这条语句的意思是,如果A>B的话,就将100赋给C,否则就将200赋给C;

无名氏的程序员
19分钟前
3
0
针对回流和重绘的渲染优化--公司分享

如果是你,你会如何实现浏览器内核,你认为的浏览器渲染的流程是怎么样的 工作开发中,你有做过哪些关于性能优化的工作(代码),或者目前的业务中有哪些是可以做优化的 浏览器渲染机制 什么...

莫西摩西
32分钟前
3
0
html:常见行内标签,常见块级标签,常见自闭合标签

本文转载于:专业的前端网站▷html:常见行内标签,常见块级标签,常见自闭合标签 本文内容: 常见行内标签 常见块级标签 常见自闭合标签 首发日期:2018-02-12 修改: 2018-04-25:删除了不常用...

前端老手
40分钟前
3
0
终日乾乾,含章可贞@20191017

工龄7年,7年里换了两家公司,一次被动,一次主动。一次被动只有暖,一次主动冷暖皆有。第一次,只有遗憾,没有珍惜那段时光。第二次细说一下: 一、老公司 1、离职前,甲方三种态度:恭喜、...

sunny小喵
今天
4
0
zk中leader和follower启动时信息交互

QuorumPeer中读取节点状态信息,不同状态下设置不同角色 1 Leader启动Follower接收器LearnerCnxAcceptor LearnerCnxAcceptor负责接收非leader连接请求,线程中创建LearnerHandler处理器 2 Le...

writeademo
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部