Nilfisk 集团总部位于丹麦,在 40 多个国家和地区设有销售公司。Nilfisk 结合强大的分销商网络,在全球 100 多个国家销售产品。力奇的生产设施位于亚洲、欧洲和美洲。
我们与2020年2月开始接手力奇清洁微信公众号,在此之前该公众号每月并没有规律的推送,各项公众号数据也非常的惨淡。
在往drupal的站点插入数据时,我们经常会遇到一个问题,当插入的数据包含emoji等特殊字符时,往往插入不成功,伴随着还有报错信息。这是我们的程序出问题了吗?不一定是,可能的原因有mysql版本过低,mysql配置信息不正确等。如何让drupal站点支持emoji字符呢?drupal7.50让我们看到了可能。
drupal7.50是一个跨度比较大的版本,直接从drupal7.44跳跃过来的。其中着重向我们介绍的一个新特性就是增加了对 full UTF-8 (emojis, Asian symbols, mathematical symbols)的支持,当我们的站点和数据库配置正确就可以启用了。
在状态报告中就可以看到你的站点是否支持多字节的UTF-8。如上图所示就是drupal升级到7.50后出现的提示信息。drupal官网也给了一篇文章介绍如何启用这个功能:Multi-byte UTF-8 support in Drupal 7。
这篇文章已经介绍的非常详细了,我再来简单总结一下。
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 以上) 。
通过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
转换时请将站点设为维护模式。
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'databasename',
'username' => 'username',
'password' => 'password',
'host' => 'localhost',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
);
一切设置就须,可以到状态报告里查看一下该功能是否启用成功。
如上图所示,启用成功。站点中可以插入如?等特殊字符了。