mysql支持emoji表情的方法
2015-07-25 10:49
609 查看
在做小书僮的项目中,遇到一个问题。当我保存一段话中含有emoji表情的时候呢,数据库会报错。
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'content' at row 1
这是因为utf-8为可以2,3,4个字节。mysql的utf-8最多支持3个字节,而emoji表情为4个字节,所以,报错。
那么解决方案就是:将Mysql的编码从utf8转换成utf8mb4。
1、mysql的版本需要在5.5.3以上(另:有人说mysql相关的jar包也有版本限制,如果在所有的步骤尝试都失败后,可以尝试升级jar包)
2、在my.cnf中对应位置增加下面语句:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
character-set-client-handshake = FALSE //这句话不加会使得保存到数据中的表情是个问号
init-connect='SET NAMES utf8mb4'
[mysql]
default-character-set=utf8mb4
3、修改数据库、对应的表、对应的字段的编码为utf8mb4,可以通过navcat或者命令修改。
4,重启mysql,这时候往往是不会成功的,最好删除表或者字段重新生成一下。
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'content' at row 1
这是因为utf-8为可以2,3,4个字节。mysql的utf-8最多支持3个字节,而emoji表情为4个字节,所以,报错。
那么解决方案就是:将Mysql的编码从utf8转换成utf8mb4。
1、mysql的版本需要在5.5.3以上(另:有人说mysql相关的jar包也有版本限制,如果在所有的步骤尝试都失败后,可以尝试升级jar包)
2、在my.cnf中对应位置增加下面语句:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
character-set-client-handshake = FALSE //这句话不加会使得保存到数据中的表情是个问号
init-connect='SET NAMES utf8mb4'
[mysql]
default-character-set=utf8mb4
3、修改数据库、对应的表、对应的字段的编码为utf8mb4,可以通过navcat或者命令修改。
4,重启mysql,这时候往往是不会成功的,最好删除表或者字段重新生成一下。
相关文章推荐
- Mysql 当安装完成后不执行 mysql 和 performance_schema 数据库
- 用SQL命令查看Mysql数据库大小
- Mysql中Database和Schema
- mysql如何将一个表导出为excel表格
- MYSQL---多表删除
- mysql安装或配置
- Windows7 64位安装最新版本MySQL服务器
- Windows7 64位安装最新版本MySQL服务器
- 小贝_mysql索引学习与优化
- mySQL笔记(1)
- mysql 问题解决
- 【菜鸟学注入】之MySQL报错注入详解
- 小贝_mysql分区实例
- 小贝_mysql分区理论学习
- MySQL数据库使用命令行备份|MySQL数据库备份命令
- 小贝_mysql表优化
- MySQL出现“错误1067:进程意外终止”
- MySQL出现“错误1067:进程意外终止”
- Navicat for MySQL数据库管理工具
- 小贝_mysql sql语句优化过程