`
huangjinjin520
  • 浏览: 71419 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java存储emoji表情解决方案

阅读更多
1、问题产生情况
    在开发IM时有些有用的头像用了emoji表情或者聊天的时候用了emoji表情,然而mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了。emoji表情存不了在数据库。

    java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column 'raw_json' at row 1

2、为什么会出现这种原因
因为mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。

3、解决方案

    方案一:修改数据库的编码集设置为utf8mb4,无论是数据库还是表,还是字段。虽然会增加存储,但是这个可以忽略不计。

   方案二: 有时候原因不能修改数据库编码之类的,可以用java对emoji表情进行转化编码,例如emoji-java这种对emoji表情进行特殊处理的jar哦,然后保存或者去掉表情,这也是一种折中的解决方案。

  emoji-java的下载地址: https://github.com/vdurmont/emoji-java

关注我是我最大的动力


  • 大小: 39.9 KB
0
0
分享到:
评论

相关推荐

    java ipone 微信昵称emoji表情保存失败 问题解决

    本问题涉及的是一个典型的Java、iPhone和微信环境下的emoji表情存储问题。当iPhone 5s用户尝试在昵称中使用emoji表情时,这些表情无法成功保存到MySQL数据库中,导致报出"java.sql.SQLException: Incorrect string ...

    emoji-java-master

    "emoji-java-master"项目就是针对这个问题提供的一种解决方案,它是一个专门用于处理和操作Java中Emoji的开源库。下面我们将深入探讨这个库的核心功能、工作原理以及如何在实际开发中应用。 首先,我们了解下问题...

    mysql中插入emoji表情失败的原因与解决

    mysql的utf8编码的一个字符最多3个字节,但是一个emoji表情为4个字节,所以utf8不支持存储emoji表情。但是utf8的超集utf8mb4一个字符最多能有4字节,所以能支持emoji表情的存储。 下面话不多说了,来一起看看详细的...

    Android即时通讯中Emoji表情的集成

    对于可能出现的问题,如字体加载失败、Emoji显示为空白等,要有针对性的解决方案。 综上所述,Android即时通讯应用中集成Emoji表情涉及到Unicode码的使用、Emoji字体库的选择、键盘和选择器的设计以及兼容性处理等...

    mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

    总之,在MySQL数据库中存储Emoji表情时遇到的报错问题,通过将数据库字符集更改为utf8mb4是有效的解决方案。更改字符集的过程包括确认MySQL版本、修改配置文件、重启数据库以及检查配置效果等多个步骤。解决这类问题...

    超全的emoji字符表情图片开发资源包

    总的来说,这个“超全的emoji字符表情图片开发资源包”为开发者提供了一站式的解决方案,涵盖了主流平台的emoji风格,帮助开发者轻松地在Android应用中实现丰富的表情功能,提升用户的互动体验。无论是社交应用、...

    高仿微信表情键盘支持emoji,自定义表情

    在Android开发中,创建一个高仿微信表情键盘,支持emoji和自定义表情,是一个常见的需求,尤其是在社交应用中。...通过研究这样的开源项目,开发者不仅可以提升自己的技术能力,也能借鉴成熟的设计模式和解决方案。

    emoji入库mysql注意事项除了更改utf8mb4最大的坑在这里

    #### 三、解决方案:使用UTF8MB4字符集 为了解决上述问题,最简单有效的方法就是将MySQL的字符集设置为`utf8mb4`。这个字符集能够支持最多四个字节的字符编码,从而可以完美兼容emoji等四字节字符。 - **在安装...

    base100:base:hundred_points:-将您的数据编码为表情符号

    然而,这并不意味着它是替代传统编码的通用解决方案,因为在效率和解析复杂性方面,emoji编码可能会面临挑战。 标签中的"emoji"是指这种编码方式使用了表情符号,"base64 codec"表明它是基于类似Base64的编码原理,...

    零壹网址大全留言本

    【零壹网址大全留言本】是一款基于Web...这对于初学者理解Web开发的全貌,或者对于经验丰富的开发者寻找灵感和解决方案都大有裨益。通过分析和学习这个留言本,你可以提升自己的编程技能,掌握Web应用开发的基本流程。

Global site tag (gtag.js) - Google Analytics