今天在整理文章的时候,发现草稿箱里有一篇之前转载的但未完成的作品,内容很多,估计当时也没耐心了,毕竟网上一搜一大把的何苦非要搬过来呢。
删了么也可以,咬咬牙把它弄完算了,以后在自己的站点内搜索起来也方便。
结果复制粘贴之后,点击保存草稿,却出现了白屏,中间几个大字:“Database Query Error”!
Typecho-Database_Query_Error.jpg
开启Typecho的调试模式,编辑config.inc.php文件,加入:

define('__TYPECHO_DEBUG__', true);

重新操作刚才的步骤,继续复制粘贴,报错如下:
Typecho-Database_Query_Error-General_error.jpg
从网上的搜索结果来看,应该是当初在创建数据库的时候,选用了UTF-8 的编码,而它最多只支持3个字节,对于某些4字节的内容来说就会出现问题。
typecho_database.jpg
从实际情况来看也确实如此。
既然使用了phpMyAdmin,那么修改数据库的charset为utfmd64就可以通过界面来操作。typecho_database_change_charset.jpg
另一种就是通过SQL命令来实现,比如:

alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_mail convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;

具体转化多少表看实际情况。点击执行后刷新数据库,字符集都修改完成。
打开配置文件config.inc.php,将数据库定义参数中的charset改为utf8mb4。

'charset' => 'utf8mb4',

保存上传后,重新再复制粘贴前面的文章内容,保存草稿成功。

本文参考资料:https://iui.su/2892/

最后修改:2024 年 04 月 28 日
如果觉得我的文章对你有用,请随意赞赏