zoukankan      html  css  js  c++  java
  • mysql存储emoji表情

    微信获取的用户昵称nickname中带有emoji表情,转换成字符码后是这种形式“xF0x9Fx91x8DxE6x94...”,

    直接保存可能出现以下错误

    Caused by: java.sql.SQLException: Incorrect string value: 'xF0x9Fx98x84' for column 'review' at row 1
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)

    经检查原因:

    UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。

    解决方案:将Mysql的编码从utf8转换成utf8mb4。

    步奏1:修改my.ini 文件 [mysqld] character-set-server=utf8mb4

    步奏2:在Connector/J的连接参数中,不要加characterEncoding参数。 不加这个参数时,默认值就时autodetect。

    jdbc.driver_class com.mysql.jdbc.Driver
    jdbc.url jdbc:mysql://127.0.0.1:3306/jlbmg?useUnicode=true
    #&characterEncoding=utf8 
    jdbc.username root
    jdbc.password root

    步奏3: 将已经建好的表也转换成utf8mb4
    命令:ALTER TABLE `TABLE_NAME` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; (将TABLE_NAME替换成你的表名)

    alter table `TABLE_NAME` convert to character set utf8mb4 collate utf8mb4_general_ci;

    步奏4:将需要使用emoji的字段设置类型为utf8mb4:

    命令:alter table `TABLE_NAME`modify column `COLUMN_NAME`  text character set utf8mb4 collate utf8mb4_general_ci;

     步奏5:重启mysql: 

    开始->运行->cmd
    停止:net stop mysql
    启动:net start mysql

  • 相关阅读:
    洛谷 P2580 于是他错误的点名开始了(Trie)
    AcWing 142. 前缀统计(Trie)
    Codeforces Round #646 (Div. 2) E. Tree Shuffling(贪心/树形DP)
    Django form表单|form组件常用字段、校验
    AJAX | json、上传文件、SweetAlert插件
    Django中间件
    Django的Cookie、Session和自定义分页
    Django的ORM操作-FQ-事物
    django-模板引擎进阶
    django-视图函数进阶
  • 原文地址:https://www.cnblogs.com/chreless2/p/5126680.html
Copyright © 2011-2022 走看看