这个问题困扰了我很久,网上搜索了N多材料,也没有头绪,我把我的尝试路径发出来
方法1.使用可读字符替换位emoji字符存储,前端显示时再将可读字符替换为html相应的emoji图片;
方法2:使用MySQL数据库5.5版本以上,utf8mb4方式存储和读取,前端使用emoji编码用微信自带的emoji图片显示;
方法3:不升级数据库,存储时使用字符串替换,读取后替换回来用微信自带的emoji图片显示.
经过分析,
方法2效率最高,但是要升级数据库,风险太大,对业务影响不可预估,因此对我来说此为下策,
方法1难度不大,但是需要找到小程序可用的前端js和emoji图片库,没有的话就需要自己造轮子,时间代价大,放弃,最后只能使用方法3.
方法3:入库时使用emoji与str转换函数,转成xXXXX或者/uXXXX的形式,现成的库函数一大把,读取数据库时转换回来成为emoji字符,但是问题出现了,转换之后微信还是显示不可识别字符,喵了个咪的!网上查询无果之后,于是我走了弯路,打算采用方法2,方法2都搞完了,服务器被我折腾一宿,最后一步又卡住了,字段全为emoji字符时入库根本存不进去,网上说还要折腾数据库,我觉得算了,别显示没解决服务器被我搞挂了.
山穷水尽疑无路,柳暗花明又一村.
百度后找到这篇文章:
https://www.aiyingli.com/45083.html(小程序丨昵称里的表情符号不能正常显示)
感谢网友的留言,终于看到了曙光,搞明白了,原来是字符编码不同造成的,把字段出库后,先讲str转换为emoji_softbank编码,然后再转换为emoji_unified编码编码格式就ok了,处理结束,完活儿.
不用升级数据库, 存储之后数据库是这个样子: