Home >Backend Development >PHP Tutorial >网页如何显示emoji表情

网页如何显示emoji表情

PHPz
PHPzOriginal
2016-06-06 20:25:405759browse

网页显示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中文网

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn