• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mysql/Java服务端对emoji的支持与问题解决方法详解

    本文实例讲述了mysql Java服务端对emoji的支持与问题解决方法。分享给大家供大家参考,具体如下:

    问题描述

    将底层抓取的微博数据存入mysql,有些数据存入失败,查看Tomcat后,核心错误信息如下:

    // 抛出字符集不支持的异常
    sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1

    原因分析

    【注】

    解决方法

    过滤特殊的表情符

    content = content.replaceAll("[\\x{10000}-\\x{10FFFF}]", "");// 简单粗暴,不人性化
    
    

    升级数据库字符集

    1、utf8mb4支持的mysql版本为5.5.3+,若mysql低于该版本请先升级

    2、修改database、table和column字符集

    3、修改mysql配置文件my.cnf(windows为my.ini),my.cnf一般在etc/mysql/目录下,找到后在以下三部分里添加如下内容:

    [client] default-character-set = utf8mb4
    
    
    [mysql] default-character-set = utf8mb4
    
    
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    
    

    4、重启mysql并查看字符集

    在mysql命令行输入:

    SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
    

    重启之前的字符集

    重启之后的字符集

    【注】

    以上4步完成后,利用mysql客户端navicat在表中手动加入Emoji表情⛄,若能保存成功说明数据库已升级成功。

    这些字符集配置的具体区别参考 深入Mysql字符集设置

    5、检查服务器端db配置文件

    // 配置spring时使用的链接如下:
    url="jdbc:mysql://localhost:3306/gzhou?allowMultiQueries=trueuseUnicode=truezeroDateTimeBehavior=convertToNulltransformedBitIsBoolean=trueautoReconnect=trueautoReconnectForPools=truefailOverReadOnly=falsemaxReconnects=10"
    // 若characterEncoding=utf8mb4,插入数据时报错Caused by: java.sql.SQLException: Unsupported character encoding 'utf8mb4'
    // 去掉characterEncoding或characterEncoding=utf8
    
    

    Emoji表情

    android系统中,搜狗、百度输入法自带Emoji表情。

    【注】

    如果系统之间Emoji表情符号不兼容,只能看到方块;

    更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》

    希望本文所述对大家MySQL数据库计有所帮助。

    您可能感兴趣的文章:
    • MySQL mysqladmin客户端的使用简介
    • MySQL 如何连接对应的客户端进程
    • 解决MySql客户端秒退问题(找不到my.ini)
    • PHP Swoole异步MySQL客户端实现方法示例
    • 解决Node.js mysql客户端不支持认证协议引发的问题
    • mysql8.0.11客户端无法登陆的解决方法
    • 初识NodeJS服务端开发入门(Express+MySQL)
    • 用于App服务端的MySQL连接池(支持高并发)
    • 解读MySQL的客户端和服务端协议
    上一篇:mysql创建数据库,添加用户,用户授权实操方法
    下一篇:mysql 8.0.18.zip安装配置方法图文教程(windows 64位)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mysql/Java服务端对emoji的支持与问题解决方法详解 mysql,Java,服务,端,对,emoji,