> 백엔드 개발 > PHP 튜토리얼 > 网页如何显示emoji表情

网页如何显示emoji表情

PHPz
풀어 주다: 2020-09-04 15:44:11
원래의
5738명이 탐색했습니다.

网页显示emoji表情的方法:首先将数据库字符集改成“utf8mb4”编码;然后将数据表改成“utf8mb4”编码;最后将框架里的配置编码也改成“utf8mb4”即可显示出emoji表情。

网页如何显示emoji表情

网页如何显示emoji表情?

APP开发时,遇到用户填写评论的情况,有些用户会输入emoji表情。开发微信登录的时候,有些用户的头像也是emoji表情。此时直接存入数据库,页面会无法显示。那么怎么让页面显示呢?

一共有两种办法,推荐第一种

方法一:①MySQL数据库改的字符集改成utf8mb4编码,②数据表改成utf8mb4编码,③框架里的配置编码也改成utf8mb4。

一、存储昵称的字符集改成utf8mb4

03d829aace2ef1dea4a286c00370d0c.png

二、数据表改成utf8mb4编码

e79bd98e9a4a82b93b2fdd5672f4b28.png

三、框架里的配置编码也改成utf8mb4(以Thinkphp框架为例)

552f403f1635faf3e3d22f03092357e.png

方法二:存进数据库用urlencode存,取的时候用urldecode取,再返回给前端

要点:一、存进数据库时,用 urlencode 存,取的时候,用 urldecode 返回给前端

二、为避免全部文字都用urlencode存进数据库,字段太长导致数据错乱,所以做个细节处理,只有碰到emoji表情才使用urlencode,中文和英文不使用urlencode

代码开始

$remark = '[表情][表情][表情][表情][表情][表情]哈哈哈哈';        //  用户发布的评论
    $str = '';       //  
    // 3字节是汉字,不转换,4字节才是 emoji
    for ($i = 0; $i < mb_strlen($remark); $i++) {
        $char = mb_substr($get[&#39;remark&#39;], $i, 1);
        if (strlen($char) > 3) {
            $char = urlencode($char);
        }
        $str .= $char;
    }
    //  $str则为最后要存进数据库的数据
로그인 후 복사

取出的时候,记得用urldecode转换一下,即可。

$res = mysql -> query(&#39;SELECT remark FROM user_remark&#39;);
    $remark = urldecode($res[0][&#39;remark&#39;]);
로그인 후 복사

页面最终打印效果

bd9187a301dd424e039a86c31208d5d.png

更多相关知识,请访问PHP中文网

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿