52php

相关资料

微信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

 

分类:

技术点:

相关文章:

  • 2021-11-01
  • 2021-08-15
  • 2021-06-12
  • 2022-12-23
  • 2022-12-23
  • 2021-08-02
  • 2020-01-16
  • 2022-12-23
猜你喜欢
  • 2021-11-08
  • 2021-12-12
  • 2021-05-10
  • 2021-12-06
  • 2022-12-23
相关资源
相似解决方案