今天在复制一篇文章到Xiunobbs 时,出现错误。文章内容变空白。经过研究发现是该文章中包含有emoji表情,就是打字输入的那种表情符号,比如![]()
![]()
这种。然后xiunobbs不支持,表情后面的内容直接就空白了。
开始以为是插件的问题,后来发现是xiunobbs编码的问题。要使xiunobbs支持emoji表情符号,只需要修改一下编码即可。
1. 第一步修改数据库,在数据库中执行以下SQL代码(请把下面bbs_修改成你自己的表前缀后执行,如果是默认的是bbs_ 请直接复制):
ALTER TABLE `bbs_post`
MODIFY COLUMN `message` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL AFTER `quotepid`,
MODIFY COLUMN `message_fmt` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL AFTER `message`;
ALTER TABLE `bbs_post_update_log`
MODIFY COLUMN `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL AFTER `reason`;
ALTER TABLE `bbs_thread`
MODIFY COLUMN `subject` char(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' AFTER `userip`;
ALTER TABLE `bbs_notice`
MODIFY COLUMN `message` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL AFTER `type`;
ALTER TABLE `bbs_modlog`
MODIFY COLUMN `subject` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' AFTER `pid`,
MODIFY COLUMN `comment` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' AFTER `subject`;
如果提示某一个表没有,直接删除掉就可以,我这提示bbs_post_update_log不存在,这是因为没有安装那个插件。
- 修改配置文件bbs/conf/conf.php
把15行和32行的 ‘charset’ => ‘utf8’, 修改为 ‘charset’ => ‘utf8mb4’,
这样修改后,xiunobbs就可以在帖子和回帖中输入表情符号了!