[不花钱站长]:从免费域名开始[0元] Oracle永久免费VPS[0元] VPS环境搭建免费脚本[0元] 秒变大盘挂载免费网盘[0元] 小白免费采集器1天500W[0元] CF免费DNS+CDN服务[0元]
[零基础网赚]:撸本站免费源码[0元] 网站强引免费蜘蛛法[0元] 图片视频文件免费存储[0元] 外链轻松发布免费友链[0元] 入坑免费教程学习源代码[0元] 网上百种+赚钱联盟推荐[?元]

↑↑VPS推荐网 WWW.VPS.COM.IN 稳定 便宜 免备案↑↑


您现在的位置是:首页 > 全球[VPS测评] >  永久免费VPS 香港VPS,国外永久免费VPS

微信网页开发获取用户昵称乱码 微信昵称包含 emoji 表情乱码的解决方案

全球[VPS测评]来源:VPS推荐网点击:1535
【性价之王】【线路之王】【价格之王】【配置之王】
【免费之王】【香港首推】【梯子之王】【独服之王】
微信网页开发获取用户昵称乱码 微信昵称包含 emoji 表情乱码的解决方案

微信网页开发获取用户昵称乱码 微信昵称包含 emoji 表情乱码的解决方案如下:

问题产生原因:由于数据库及属性一致设为 utf8,而 utf8 只支持 1-3 个字节。当用户昵称为 emoji 表情时,获取用户基本信息时会乱码。

解决方案一:修改数据库为支持 4 个字节的 utf8mb4 编码即可正常存储 emoji 表情等特殊符号。

1.升级 mysql 到支持 utf8mb4 编码的最低版本 5.5 以上。

2.更改 mysql 设置,更改/etc/my.cnf 配置文件。

3.修改 mysql 配置文件,在[client]加入 default-character-set=utf8mb4;在[mysqld]加入 character_set_server = utf8mb4;

4.重启 mysql 数据库。把要插入特殊表情的数据库、表、字段的编码改成 utf8mb4。

解决方案二:将获取的微信昵称等进行 urlencode 转码之后再存储到数据库中,显示的时候再做 urldecode 操作。

$nickname = urlencode($nickname); nickname = urldecode($nickname);

解决方案三:将获取的微信昵称中的特殊符号过滤掉。

public static function removeEmoji($text) { $clean_text = ""; // Match Emoticons $regexEmoticons = '/[x{1F600}-x{1F64F}]/u'; $clean_text = preg_replace($regexEmoticons, '', $text); // Match Miscellaneous Symbols and Pictographs $regexSymbols = '/[x{1F300}-x{1F5FF}]/u'; $clean_text = preg_replace($regexSymbols, '', $clean_text); // Match Transport And Map Symbols $regexTransport = '/[x{1F680}-x{1F6FF}]/u'; $clean_text = preg_replace($regexTransport, '', $clean_text); // Match Miscellaneous Symbols $regexMisc = '/[x{2600}-x{26FF}]/u'; $clean_text = preg_replace($regexMisc, '', $clean_text); // Match Dingbats $regexDingbats = '/[x{2700}-x{27BF}]/u'; $clean_text = preg_replace($regexDingbats, '', $clean_text); return $clean_text; }

以上三种方案都可以解决微信网页开发时微信昵称包含 emoji 表情导致乱码的问题,我采用的是第二种方法,目前没发现什么其他的问题。



猜你可能想看的VPS


转载请注明原文地址:http://140.238.13.167:12355/read-205489.html

下一篇       上一篇