AD
内容提要:很多站长的网站,如果发帖或者回复里有emoji表情的话,会出现其奇怪怪的问题,有的discuz版本会截断Emoji后面的字符,有的会降emoji变成问号,反正就是不正常显示,今天我们就是来解决这个问题的。首先得您的网站必须是UTF-8编码的才能搞,gbk的可不行。discuz的编码是UTF-8,但是支持emoji需要utf-8mb4,只要把forum_thread表里的subject字段和forum_post表里的message和sub
很多站长的网站,如果发帖或者回复里有emoji表情的话,会出现其奇怪怪的问题,有的discuz版本会截断Emoji后面的字符,有的会降emoji变成问号,反正就是不正常显示,今天我们就是来解决这个问题的。
首先得您的网站必须是UTF-8编码的才能搞,gbk的可不行。
discuz的编码是UTF-8,但是支持emoji需要utf-8mb4,只要把forum_thread表里的subject字段和forum_post表里的message和subject字段的编码改成utf-8mb4就可以了,可以通过phpmyadmin或者navicat来修改,记得更改前先备份哦,理论上来说没啥风险的。
另外config/config_global.php这个里面的数据库编码也得改成utf-8mb4。如:$_config['db']['1']['dbcharset'] = 'utf8mb4';
然后内容里输入emoji表情就可以正常显示了。
另外再分享个去除emoji表情的函数,备用:
function removeEmojiChar($str) {
$mbLen = mb_strlen($str);
$strArr = [];
for ($i = 0; $i < $mbLen; $i++) {
$mbSubstr = mb_substr($str, $i, 1, 'utf-8');
if (strlen($mbSubstr) >= 4) {
continue;
}
$strArr[] = $mbSubstr;
}
return implode('', $strArr);
}