Incorrect string value: ‘\xF0\x9F\x98\x82‘ for column ‘TABLE_NAME_CH‘ at row 1

问题描述:

当mysql存储表情时,报错。 报错具体信息:Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82' for column 'TABLE_NAME_CH' at row 1

原因分析:

MySQL等数据库中普通的UTF8编码并不支持Emoji(只有utf8mb4支持)MySQL等数据库中普通的UTF8编码并不支持Emoji(只有utf8mb4支持)。

解决方案1:

(1)步骤一:确定数据库、表、字段编码和排序规则,必须是utf8mb4

(2)步骤二:jdbc连接需指定字符编码和排序规则

&useUnicode=true&characterEncoding=UTF-8&connectionCollation=utf8mb4_general_ci

步骤三:提升mysql依赖驱动版本
mysql驱动版本必须是5.1.47以上(包括5.1.47)

解决方案2:

使用hutool工具类
https://www.hutool.cn/docs/#/extra/emoji/Emoji工具-EmojiUtil

posted @ 2022-01-24 10:24  KeepArlen  阅读(147)  评论(0)    收藏  举报