数据库配置好了,能正常保存emoji,在phpMyAdmin中也能正常显示,如下图
但是在我的页面总是显示问号……
谷歌了一下,发现都是用照片替代emoji,但是看了一下PhpMyAdmin的代码,却是可以原生支持的……
请问这种效果要怎么样才能做到?
数据库配置好了,能正常保存emoji,在phpMyAdmin中也能正常显示,如下图
但是在我的页面总是显示问号……
谷歌了一下,发现都是用照片替代emoji,但是看了一下PhpMyAdmin的代码,却是可以原生支持的……
请问这种效果要怎么样才能做到?
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);
}
}
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答569 阅读✓ 已解决
784 阅读
emojify.js 是一款能够将 emoji 关键词转换为 emoji 图片的 JavaScript 插件, 可以快速的为你的网站提供 emoji 表情支持,demo