微信emoji表情编码 、MySQL 存储 emoji 表情符号字符集

相关资料

微信emoji表情编码

微信用户名显示「emoji表情」

PHP处理微信中带Emoji表情的消息发送和接收(Unicode字符转码编码)

MySQL 存储emoji表情

MySQL 存储 emoji 表情符号字符集

 

遇到的问题

项目中有个 H5页面 聊天模块,当用户输入 emoji表情符时,插入数据表时报错

incorrect string value: '\xF0\x9F\x98\x84' for column 'content' at row 1

数据库/数据表/表字段 的字符集为 utf8_general_ci,根据上面的“相关资料”,需要做些如下处理:

1、把 PHP 连接 MySQL 的字符集 由 utf8 改为 utf8mb4;

ThinkPHP框架中,改下 配置文件 /ThinkPHP/Conf/convention.php 的 DB_CHARSET 为 utf8mb4 (默认为 utf8);

2、把 聊天记录表的 聊天内容字段的 字符集改为 utf8mb4_general_ci

注意:数据库、数据表 的字符集都不用改,只改 聊天内容字段 即可!

产生的结果

1、数据表能正常存储 emoji表情;

2、微信(浏览器)的 苹果版 可以输入和显示 emoji表情,而 安卓手机输入时,乱码,但可以显示部分的 由苹果手机输入的 emoji表情;

3、在 最新的 PC 端的 Chrome 56 浏览器上,可以 正常输入和显示 emoji表情;

 

总结

平常新建数据库时,选择字符集 utf8mb4_general_ci

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值