600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解

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

时间:2023-09-07 10:01:59

相关推荐

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

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

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

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

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

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

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表情导致乱码的问题,我采用的是第二种方法,目前没发现什么其他的问题。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。