Before you develop a marketing strategy, you should ask yourself what your business strategy is. Your marketing strategy should be based on your business strategy and brand strategy. Your marketing strategy is not equal to your business strategy.
如何让drupal站点支持emoji字符
在往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。
这篇文章已经介绍的非常详细了,我再来简单总结一下。
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文件,内容同上。启动安装就可以了。
一切设置就须,可以到状态报告里查看一下该功能是否启用成功。
如上图所示,启用成功。站点中可以插入如?等特殊字符了。