您的位置:首页 > 数据库 > MySQL

MySql之输入Emoji表情

2015-11-29 19:50 483 查看
开发的app里遇到一个问题,用户输入Emoji表情就会发表东西失败,查日志发现数据库会报错,类似这样

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1

好吧,网上搜了一圈,说是字符集不行,

详细解释在这里Emoji表情符兼容方案

既然说了utf8的字符集不行,那就去改字符集,统统改成utf8mb4。

1.先去修改表字段字符集为utf8mb4:

ALTER TABLE UGC_REVIEW_CONTENT MODIFY `CONTENT` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '评论内容';

2.再去修改表字符集utf8mb4:

ALTER TABLE UGC_REVIEW_CONTENT CHARSET=utf8mb4 COMMENT='晒单/推荐的评论内容';

3.再去修改数据库的字符集utf8mb4:

init-connect='SET
NAMES utf8mb4'

character-set-server=utf8mb4

一切就绪,重启mysql服务

再查看数据库字符集

mysql> show variables like
'%char%';

+--------------------------+----------------------------------+

| Variable_name | Value |

+--------------------------+----------------------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| character_sets_dir | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

再试试发表情


好啦,问题解决!

ps:如果以上方法下来并未能成功的话,一定是你的mysql配置没改好,那么请参考下面这篇文章,绝对妥妥的。

如何修改MySQL字符集
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: