mysql utf8mb4 所引起的问题
这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而MySQL utf8编码只能存放3字节的字符。
在MySQL 5.6中,可以设置编码为utf8mb4,这个字符集是utf8的超集。

不过还有三种方式可以设置字符集
1.不显式设置字符集,继承服务器的配置
2.在执行SQL之前,运行set names 的查询 (Query方式)

3.设置MySQL init_connect参数

经过测试各种因素的结果如下所示:
|
|
JDBC版本
|
普通中文
|
苹果表情
|
|
服务器utf8编码
|
5.1.6
|
正常
|
插入报错
|
|
|
5.1.6 Query
|
正常
|
正常
|
|
|
5.1.6 init_connect
|
正常
|
插入报错
|
|
|
5.1.31
|
正常
|
插入报错
|
|
|
5.1.31 Query
|
正常
|
正常
|
|
|
5.1.31 init_connect
|
正常
|
插入报错
|
|
服务器utf8mb4编码
|
5.1.6
|
乱码
|
乱码
|
|
|
5.1.6 Query
|
乱码
|
乱码
|
|
|
5.1.6 init_connect
|
乱码
|
乱码
|
|
|
5.1.31
|
正常
|
正常
|
|
|
5.1.31 Query
|
正常
|
正常
|
|
|
5.1.31 init_connect
|
正常
|
正常
|
总结:
1.修改了character_set_server参数,需要重启数据库
2.使用高版本的JDBC
mysql utf8mb4 所引起的问题的更多相关文章
- mysql : utf8mb4 的问题
微信呢称和QQ呢称上有很多火星文和emoji表情图片,这些数据,如果直接insert到mysql数据库,一般会报错,设置成utf8都不好使,必须改成utf8mb4编码,这二者的区别见: mysql u ...
- mysql utf8mb4
遇到的问题 有一个项目需要存储 emoji 表情.另外极少数中文在存储的时候也遇到 utf8 编码格式的数据库在储存时报错. Rails creating schema_migrations - My ...
- mysql utf8mb4与emoji表情
一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. emoji表情符号,在外国的手机短信里 ...
- 字符集UTF-8MB4 MySQL utf8mb4 字符集,用于存储emoji表情
字符集UTF-8MB4 utf8mb4兼容utf8,且比utf8能表示更多的字符.看unicode编码区从1 - 126就属于传统utf8区,当然utf8mb4也兼容这个区,126行以下就是utf8m ...
- mysql utf8mb4 设置
[mysqld]collation-server=utf8mb4_general_ciinit-connect='SET NAMES utf8mb4'character-set-server=utf8 ...
- 关于MySQL utf8mb4 字符集中字符串长度的问题
MySQL之前推出的utf8字符集中,一个汉字占3个字节,新的utf8mb4字符集中一个汉字占4个字节. 那么我们平时建表的时候输入的varchar=16这种,到底指的是字符长度还是字节长度? 如果是 ...
- JDBC对Mysql utf8mb4字符集的处理
写在前面 在开发微信小程序的时候,评论服务模块希望添加上emoji表情,但是emoji表情是4个字节长度的,所以需要进行设置 当前项目是JAVA编写, 使用JDBC连接操作数据库, 如下针对的JDBC ...
- Mysql UTF-8mb4字符集的问题
官方Mysql手册链接 https://dev.mysql.com/doc/connectors/en/connector-j-reference-charsets.html Notes For Co ...
- scala slick mysql utf8mb4 支持
语言 scala sql包 slick 3.2.0 数据库 mysql https://stackoverflow.com/questions/36741141/scala-slick-jdbc ...
随机推荐
- Struts2的配置文件的配置struts.xml
在学习struts的时候,我们一定要掌握struts2的工作原理. 仅仅有当我们明白了在struts2框架的内部架构的实现过程.在配置整个struts 的框架时.能够非常好的进行逻辑上的配置.接下来我 ...
- css3中-moz、-ms、-webkit 是什么意思
-moz代表firefox浏览器私有属性-ms代表IE浏览器私有属性-webkit代表chrome.safari私有属性 私有属性例如:设置div圆角的大小 -webkit-border-radius ...
- System.out.print实现原理猜解
我们往往在main中直接调用System.out.print方法来打印,但是其实就这简单的一步里面有很多的玄机,因为main是static的,所以只能调用static的函数,那么print是stati ...
- linux shutdown命令
shutdown [-t 秒] [-arkhncfF] 时间 [警告信息] 常用选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k : 不要真的关机,只是发送警告信息出 ...
- eclipse cdt Program "make" not found in PATH
eclipse cdt插件,开发c/c++程序,编译时报错Program "make" not found in PATH经查C:\MinGW\bin下确实无make.exe,有m ...
- Java API 各个包的内容解释
java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类. java.awt 包含用于创建用户界面和绘制图形图像的所有类. java.awt. ...
- 一个PHP操作大变量的例子
By C extensions we can directly manipulate the large PHP variables, such as:GET,POST,SERVER You can ...
- Exception in thread main java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFacto
报错: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/Log ...
- iOS UIKit Dynamics入门 UIKit动力学,实现重力、连接、碰撞、悬挂等动画效果
本文为转载文章 版权归原文所有 什么是UIKit动力学(UIKit Dynamics) 其实就是UIKit的一套动画和交互体系.我们现在进行UI动画基本都是使用CoreAnimation或者UIVie ...
- 【LeetCode】115. Populating Next Right Pointers in Each Node (2 solutions)
Populating Next Right Pointers in Each Node Given a binary tree struct TreeLinkNode { TreeLinkNode * ...