精华内容
下载资源
问答
  • 异常:java.sql.SQLException: Incorrect string ... MySql的utf-8编码只支持3个字节的数据,而移动端的emoji是四个字节的数据,如果直接往utf-8编码的数据库中插入表情,就会报上面的错误。  utf8mb4编码兼容ut...

    异常:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1

    解决:

      MySql的utf-8编码只支持3个字节的数据,而移动端的emoji是四个字节的数据,如果直接往utf-8编码的数据库中插入表情,就会报上面的错误。

      utf8mb4编码兼容utf-8,是utf-8编码的超集,能存储4字节的表情字符。

      1,将存储表情字符的数据库表改为utf8mb4,

      2,utf8mb4支持的数据库版本最低为5.5.3+。

      3,修改mysql配置文件my.cnf(windows为my.ini)。

        [client]
        port=3306
        [mysql]
        default-character-set=utf8mb4

        [mysqld]

        character-set-server=utf8mb4

      4,重启MySql服务。

      5,修改数据库连接的配置

        characterEncoding=utf8会被自动识别成utf8mb4,可以不加这个参数,

      重新测试,发现已经可以存储表情字符了。  

      

    转载于:https://www.cnblogs.com/3b2414/p/10109697.html

    展开全文
  • 数据库存储emoji表情,应该用什么编码格式,为什么? 1、解决方式: 存储emoji表情mysql数据库需要使用utf8mb4格式,不能使用utf8格式 2、解释: mysql默认编码utf8格式,只能存储3个字节的数据,而emoji表情是4个...

    数据库存储emoji表情,应该用什么编码格式,为什么?

    1、解决方式:
    存储emoji表情mysql数据库需要使用utf8mb4格式,不能使用utf8格式

    2、解释:
    mysql默认编码utf8格式,只能存储3个字节的数据,而emoji表情是4个字节的数据,所以无法存储。
    utf8mb4是utf8的超集,一个字符最多可以有4个字节,所以使用utf8mb4可以存储

    展开全文
  • 储存用户信息的时候一般选用varchar类型,字符集为默认的utf8。 现阶段的utf8为3字节,没有包含emoji字符。这也就导致在存储这类数据的时候无法识别用全部用”?“处理 我们只需要修改数据的字段类型,选用utf8...

    在做个人信息入库的时候经常会遇到一个问题,那就是用户的昵称里带有emoji表情在入库的时候往往会被转成”???“号来处理。今天就来讲讲背后的缘由

    • 在储存用户信息的时候一般选用varchar类型,字符集为默认的utf8。
      在这里插入图片描述

    现阶段的utf8为3字节,没有包含emoji字符。这也就导致在存储这类数据的时候无法识别用全部用”?“处理

    我们只需要修改数据的字段类型,选用utf8mb4类型即可。
    可能还需要修改下mysql的默认字符位utf8mb4,重启MySQL。


    喜欢我的文章,欢迎搜索公众号”vm-321“。期待你的加入。

    展开全文
  • emoji表情需要使用编码格式为utf8mb4,mysql数据库版本要5.5以上,我用的是5.6,因为只有5.5以上支持utf8mb4。1.数据库编码设定为utf8mb4,如果建库时指定的是utf8,则需要执行语句:ALTER DATABASE database_name ...

    emoji表情需要使用编码格式为utf8mb4,mysql数据库版本要5.5以上,我用的是5.6,因为只有5.5以上支持utf8mb4。

    1.数据库编码设定为utf8mb4,如果建库时指定的是utf8,则需要执行语句:ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

    2.同时指定数据库配置参数中character_set_server改为utf8mb4

    8850bf6c5e2c1e6e884043b35306bfd7.png

    3.把对应的需要保存emoji表情的字段编码设置为utf8mb4_unicode_ci

    4a146fb84a07db285b5661a492f6dd0d.png

    4.配置完成,则可完美存储emoji表情了。

    后续

    最近发现很多新增的微信表情即使是使用了utf8mb4_unicode_ci编码也无法存储,所以索性直接使用base64加密后再存储,读取的时候解密即可,这样就不会在遇到这个令人头疼的问题了,加密解密算法如下:

    注:解密算法我这边做了一些优化(因为之前数据表中存在一些未加密数据,直接解密会报错)

    public staticString base64Encode(String str){

    String result="";try{

    result= new String (Base64.getEncoder().encode(str.getBytes("utf-8")),"utf-8");

    }catch(Exception e) {

    e.printStackTrace();

    result="";

    }

    System.out.println(result);returnresult;

    }public staticString base64Decode(String str){

    String result="";

    String base64Pattern= "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$";if(Pattern.matches(base64Pattern, str)){try{

    result= new String (Base64.getDecoder().decode(str.getBytes("utf-8")),"utf-8");

    String badChar="�";if(result.contains(badChar)){

    result=str;

    }

    }catch(Exception e) {

    e.printStackTrace();

    result=str;

    }

    }else{

    result=checkNull(str);

    }//System.out.println(result);

    returnresult;

    }

    展开全文
  • 设置数据库表字段为数据类型:utf8mb4(存储表情字段以及查询用到的相关varchar类型字段,如果存储表情字段不在查询语句中出现,可以只设置存储字段为utf8mb4类型) 可能出现异常:( 敲黑板啦,很重要 ),要防止...
  • mysql数据库存储emoji表情

    千次阅读 2016-12-22 09:23:26
    修改mysql的字符编码集为了存储emoji表情
  • 如何让数据库支持emoji表情符存储

    千次阅读 2017-11-21 14:32:12
    一、教你如何让数据库支持emoji表情符存储 解决方式: 更换字符集utf8-->utf8mb4 问题描述: 前台应用抓取微博信息,每天总有几条数据插入不成功。应用日志显示:  java.sql.SQLException: ...
  • 问题描述:想要在数据库存储表情,但前端输入表情的话,就会报错 error incorrect string value:’\xF0\x9F\x98\x9C’ for column ‘memo’ at row 1 解决方法: 查了很多资料后,发现解决方法其实很简单。 1.把要...
  • 表情是好看的 但是在存储的时候出现了一些小问题 存储进去数据库的时候报错了个人环境 后端 spring boot 连接池JDBC 数据库Mysql 5.7.24 前端 vue刚开始的时候报错 百度了下了解到是因为数据库默认的字符集是utf8 ...
  • 存储 emoji 表情,因为 utf8 不支持,需要修改字符集 科普: mysql默认的所占字节数是3个字节的,对于大部分语言来说比如说汉字什么来说是足够的,但是emoji表情有日本文字转化而来,其占了4个字节,所以在存储...
  • 最近在做微信端 web 程序开发,IOS端用户在输入时可能输入 emoji 字符,由于 utf8的 mysql 数据库并不支持存储这种字符,会报Incorrect string value: ‘\xF0\x9F\x98\x97\xF0\x9F…’ 的类似错误 第一眼看到这个错误...
  • 可以先查看自己的一个数据库表的字符集 SHOW FULL COLUMNS FROM tablename ; 然后修改自己要存贮emoji字符集的列 ALTER TABLE tablename MODIFY 列名 LONGTEXT charset utf8mb4 ; ...
  • mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。最低支持版本为5.5.3+根据网上大多数...
  • mysql数据库支持emoji表情的详解

    万次阅读 2019-03-23 17:02:12
    mysql之前的编码设置一直是utf8,但是在存emoji表情的时候,就会报错,如下: Error updating database. Cause: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x98...初步定位是数据库不支持emoji表情...
  • 关于数据库存储emoji等高级符号的字符集升级的解决方案 一:背景 mysql5.7,原字符集为utf8,想升级为utf8mb4存储emoji等高级符号 二:数据库ddl案例 第一句:ALTER TABLE dbname MODIFY c1 varchar(255) CHARACTER ...
  • 自己在新建数据库表的时候字符集已经用的是utf8mb4,但是排序规则不是utf8mb4_unicode_ci。 插入表情报错。查询了一下网上的解决办法: 【1】修改mysql的my.cnf文件 [client] default-character-set=utf8mb4 ...
  • 原文地址:... // 个人补充 "修改数据库字符集" ALTER DATABASE target_database CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; "修改表字符集" ALTER TABLE target_table CONVERT...
  • 数据库保存emoji表情方法

    千次阅读 2019-06-28 14:44:47
    1、数据库对应的字段需要设置排序规则为 utf8mb4_general_ci 2、连接数据库的charset需要修改成utf8mb4

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,717
精华内容 2,286
关键字:

数据库存储emoji