浏览器显示emoji

发布于 2022-09-01 19:53:46 字数 424 浏览 42 评论 0

数据库配置好了,能正常保存emoji,在phpMyAdmin中也能正常显示,如下图

clipboard.png
但是在我的页面总是显示问号……
谷歌了一下,发现都是用照片替代emoji,但是看了一下PhpMyAdmin的代码,却是可以原生支持的……

clipboard.png

请问这种效果要怎么样才能做到?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

雨后咖啡店 2022-09-08 19:53:46

emojify.js 是一款能够将 emoji 关键词转换为 emoji 图片的 JavaScript 插件, 可以快速的为你的网站提供 emoji 表情支持,demo

自演自醉 2022-09-08 19:53:46

Google找到这问题的。

楼主,我和你遇到了一模一样的问题
在phpMyAdmin里可以正常显示,但我读出来emoji都显示成问题号了,google和github找了好久,差点被那些用图片替换显示emoji的库带进沟里了,最后问题解决很简单,在配置数据库连接时,设置字符串为utf8mb4就行了(我原来默认设为utf8所以不行)。

我是用yii1.1的,所以数据库配置大致这如下:

'db' => [
    'class' => 'CDbConnection',
    'connectionString' => 'mysql:host=localhost;dbname=name',
    'emulatePrepare' => true,
    'enableParamLogging' => true,
    'enableProfiling'=>true,
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8mb4',
],

yii对应源码用的是SET NAMES来设置字符集,希望帮到你。

protected function initConnection($pdo)
{
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    if($this->emulatePrepare!==null && constant('PDO::ATTR_EMULATE_PREPARES'))
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,$this->emulatePrepare);
    if($this->charset!==null)
    {
        $driver=strtolower($pdo->getAttribute(PDO::ATTR_DRIVER_NAME));
        if(in_array($driver,array('pgsql','mysql','mysqli')))
            $pdo->exec('SET NAMES '.$pdo->quote($this->charset));
    }
    if($this->initSQLs!==null)
    {
        foreach($this->initSQLs as $sql)
            $pdo->exec($sql);
    }
}
马蹄踏│碎落叶 2022-09-08 19:53:46

网页中显示Emoji对环境要求比较高,首先字体要配置对,另外对不同系统和浏览器也要适配,单纯的直接显示适配起来都比较麻烦,所以一般采用图片替代的形式。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文