分类 数据库 下的文章

开发微信过程中,发现拉取用户信息中,如果用户呢称含有表情emoji的符合,是无法用mysql的utf8编码存储的。目前可以使用utf8mb4来存储。虽然能存储,但展示也是一大问题,本人建议最好的解决方案是过滤掉:以下是从网上抄的代码:

/*
*过滤掉微信呢称的emoji表情
*/

public function filterEmoji($str){

$str = preg_replace_callback('/./u',function (array $match) {
return strlen($match[0]) >= 4 ? '' : $match[0];
},$str);

return $str;

}

完结撒花!

故障检查:

服务器工具---事件查看器----Windows日志----应用程序----mysql,会在右侧看到一个红色的error

出现类似InnoDB: Attempted to open a previously opened tablespace.的报错
1.jpg

解决办法:

找到mysql数据的存放位置 如mysql/data,你会看到ib_logfile0 和ib_logfile1 这两个InnoDB表的日志文件,删除然后再重启服务,即可解决

2.jpg