微信网页开发获取用户昵称乱码 微信昵称包含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表情导致乱码的问题,我采用的是第二种方法,目前没发现什么其他的问题。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案》
文章链接:https://www.liuzhanwu.com/2783.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案》
文章链接:https://www.liuzhanwu.com/2783.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
456CDN:为网络安全与加速保驾护航,CDN测评推荐
456CDN:高防CDN,200GB DDoS防护,无视CC,1TB流量@50Mbps带宽,500元/月,安全加速,智能守护,稳定安全
#618大促#最后一天|凌霞软件旗下新一代服务器面板 1Panel:永久授权 539元起,10台4900元,即买即赠SSL证书
#618大促#最后一天|凌霞软件旗下强大易用的建站工具 Halo:永久授权 660元起,10台6000元,即买即赠SSL证书
#6.18促销#Themebetter:WordPress主题特惠7折,DUX主题折后559元,不限制域名授权数目
耗子Linux 面板:又一个轻量 Linux 服务器运维管理面板
#11.11#Themebetter:年度大放价,全场6折特惠,DUX主题折后480元,不限制域名授权数目
紧急提醒:DediPath官宣跑路