微信小程序昵称处理php存储不,PHP处理微信小程序昵称带有表情

第一步:在微信小程序的开发过程中,需要用户的授权登录并获取用户的信息,存储到数据库,但是如果用户的头像是Emoji表情的话,是存储不上去的,这是因为之前数据的utf8只能存储3个字节,而 emoji表情有些需要占4个字节。这时就需要我们修改数据库的编码格式了。

首先,我们新建数据库时选择utf8mb4编码,相应的表中字段也设置成utf8mb4编码

8f82c632274a767942ba5c909ab968e6.png7951ad8c1a4acccbc6a7423d4bdb1ad0.png

设置完之后,可以在数据库-->查询-->新建查询里运行一下下边的命令,查看数据库的编码格式是否改成utf8mb4编码

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

之后将表和表字段全改成这个编码

第二步:在存储的时候 先进行转义 读取的时候反转义一下 就可以了

//将表情进行转义 用于存储的时候

public function emoji_encode($str){

$strEncode = '';

$length = mb_strlen($str,'utf-8');

for ($i=0; $i < $length; $i++) {

$_tmpStr = mb_substr($str,$i,1,'utf-8');

if(strlen($_tmpStr) >= 4){

$strEncode .= '[[EMOJI:'.rawurlencode($_tmpStr).']]';

}else{

$strEncode .= $_tmpStr;

}

}

return $strEncode;

}

//将表情进行反转义 用于读取的时候

public function emoji_decode($str){

$strDecode = preg_replace_callback('|\[\[EMOJI:(.*?)\]\]|', function($matches){

return rawurldecode($matches[1]);

}, $str);

return $strDecode;

}

亲测有效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值