如何让drupal站点支持emoji字符

Jushuang Xiao

在往drupal的站点插入数据时,我们经常会遇到一个问题,当插入的数据包含emoji等特殊字符时,往往插入不成功,伴随着还有报错信息。这是我们的程序出问题了吗?不一定是,可能的原因有mysql版本过低,mysql配置信息不正确等。如何让drupal站点支持emoji字符呢?drupal7.50让我们看到了可能。

drupal7.50是一个跨度比较大的版本,直接从drupal7.44跳跃过来的。其中着重向我们介绍的一个新特性就是增加了对 full UTF-8 (emojis, Asian symbols, mathematical symbols)的支持,当我们的站点和数据库配置正确就可以启用了。

drupal system message 1.png

在状态报告中就可以看到你的站点是否支持多字节的UTF-8。如上图所示就是drupal升级到7.50后出现的提示信息。drupal官网也给了一篇文章介绍如何启用这个功能:Multi-byte UTF-8 support in Drupal 7

这篇文章已经介绍的非常详细了,我再来简单总结一下。

1.先检查MySQL 与 PHP MySQL驱动的版本。

MySQL服务必须支持utf8mb4 字符集(最低版本5.5.3)

低于5.7.7的MySQL在配置文件my.cnf 添加设置:

[mysqld]

innodb_large_prefix=true

innodb_file_format=barracuda

innodb_file_per_table=true

PHP MySQL驱动必须支持utf8mb4 字符集(libmysql 5.5.3以上/ mysqlnd 5.0.9 以上) 。

2.针对已经安装好的drupal站点。

备份好数据库。然后将数据表全部转换成utf8mb4的。

通过MySQL的命令行就可以实现转换。

更改已存在的数据库的字符编码类型 ALTER DATABASE {database_name} DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

更改已存在的数据表的字符编码类型 ALTER TABLE {table_name} CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

修改后需重启MySQL。

drupal也提供了utf8mb4_convert模块实现这个转换。建议大家用这个方法。不过这个模块比较特殊,不是一般模块的安装方式。安装和使用时都需要用到drush

安装:drush @none dl utf8mb4_convert-7.x

转换:drush utf8mb4-convert-databases

转换时请将站点设为维护模式。

修改setting.php文件,设置"charset" 和 "collation" 的值:

$databases['default']['default'] = array(

'driver' => 'mysql',

'database' => 'databasename',

'username' => 'username',

'password' => 'password',

'host' => 'localhost'

'charset' => 'utf8mb4',

'collation' => 'utf8mb4_general_ci',

);

3.针对新的drupal站点。

在安装前修改setting.php文件,内容同上。启动安装就可以了。

一切设置就须,可以到状态报告里查看一下该功能是否启用成功。

drupal system message 2.png

如上图所示,启用成功。站点中可以插入如?等特殊字符了。

关于作者

Dan Hu

Jushuang Xiao

Subscribe to Our Newsletter

We will deliver China-related web design, web development, and digital marketing information or tips every month.

Stephen Tseng
Stephen Tseng

不要让不确定性束缚你的SEO营销策略

无论是政策变化、经济波动,还是突发的全球事件,企业在制定营销策略时常常需要面对各种变数。不确定性营销决错失大量的市场机会。可能导致营销决策的延迟和执行的犹豫,但如果因此停滞不前,那么企业将错失大量的市场机会。

继续阅读 →

Stephen Tseng
Stephen Tseng

B2B 业务增长的关键:解析行业平均转化率及行业基准

在竞争激烈的 B2B 市场中, lead conversion rate(潜在客户转化率) 是衡量业务成功与否的关键指标之一。它不仅反映了营销策略的有效性,还直接影响到公司的收入增长。本文将深入探讨 B2B 平均转化率的相关数据和行业基准,并为您带来提升转化率的实用建议。

继续阅读 →

Stephen Tseng
Stephen Tseng

内容营销对 SEO 到底有什么用?B2B 出海营销的最佳策略指南

在数字营销领域,“内容为王”早已不是口号,而是决定企业能否被全球潜在客户发现的关键。这一点对正在拓展海外市场的 B2B 企业尤为重要:内容营销与 SEO 紧密结合,才能真正将流量转化为有效询盘和长期客户。

继续阅读 →