• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > 让Java后台MySQL数据库能够支持emoji表情的方法

让Java后台MySQL数据库能够支持emoji表情的方法

作者:bigcode 字体:[增加 减小] 来源:互联网 时间:2017-05-28

bigcode 通过本文主要向大家介绍了mysql emoji,mysql支持emoji表情,java emoji,emoji,emoji是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

前言

公司最近在开发中遇到一个问题,在弄帖子的发布与回复问题,然后再iOS端和Android端添加表情的时候都会出错

Caused by: java.sql.SQLException: Incorrect string value: '\xF6\x9D\x98\x84' for column 'comment' at row 1
</div>

提示表情有问题,然后赶紧查资料。

首先数据库编码为UTF-8,字段content设置为text(CHARSET=utf8 COLLATE=utf8_unicode_ci)用于存储帖子内容信息,现在上线新功能存储emoji表情,插入emoji表情就会报出上述错误,UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。utf8mb4兼容utf8,且比utf8能表示更多的字符,所以要设置数据库的编码为utf8mb4。

数据库编码从utf8设置为utf8mb4

1、修改my.cnf

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
character-set-client-handshake = false
</div>

2、对数据库相关的表进行字符集修改

将数据库转换为utf8mb4

ALTER DATABASE post CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
ALTER TABLE `post_article` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
ALTER TABLE `post_article` MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
</div>

3、重启数据库

sudo /etc/init.d/mysql restart
</div>

4、检查数据库的字符集是否是utf8mb4

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';
</div>

5、java 设置

设置Java的数据库连接,将characterEncoding去掉,然后保证mysql connector版本高于5.1.13,就OK了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 让Java后台MySQL数据库能够支持emoji表情的方法

相关文章

  • 2017-05-28Java 爬虫工具Jsoup详解
  • 2017-05-28Java微信公众平台开发(9) 关键字回复以及客服接口实现
  • 2017-05-28java使用Filter实现自动登录的方法
  • 2017-05-28mybatis中的缓存问题解析
  • 2017-05-28Java数组优点和缺点_动力节点Java学院整理
  • 2017-05-28SpringMVC mybatis整合实例代码详解
  • 2017-05-28通过Session案例分析一次性验证码登录
  • 2017-05-28Mac Book中Java环境变量设置的方法
  • 2017-05-28浅析Java中clone()方法浅克隆与深度克隆
  • 2017-05-28SpringBoot用JdbcTemplates访问Mysql实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
    • response.setHeader各种用法详解
    • java 制作验证码并进行验证实例详解
    • java多线程编程技术详解和实例代码
    • Hibernate对数据库删除、查找、更新操作实例代码
    • Java中IO流 RandomAccessFile类实例详解
    • Java 简化正则表达式的使用
    • Spring Boot的filter(过滤器)简单使用实例详解
    • 详解Spring全局异常处理的三种方式
    • 使用Java 8中的Lambda表达式实现工厂模式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有