2020年11月

Xiuno BBS 是一款用 PHP 开发的开源 BBS 系统,简洁高效,鼓励二次开发。当前的最新版 4.0.4 中,默认是不支持 emoji 表情的。如果发帖时填入了 emoji 表情,发帖后将变成问号。这篇文章教你怎么解决这个问题。

其实,跟 Typecho 的情况一样,造成这个问题的原因是数据库的字符编码问题。MySQL 原本的 utf8 设计只为一个字符留出最多3个字节,但 emoji 这样特别的字符需要4个。于是改成 utf8mb4 编码即可。

utf8mb4 编码是 utf8 的超集,所以一般不必担心数据损毁的问题。但保险起见,建议你操作前还是对数据库进行备份。

确保你的 MySQL 版本在 5.5.3 及以上,然后对数据库执行一些 SQL 语句。你可以用诸如 phpMyAdmin 或 Adminer 之类的在线工具,也可以用 mysql 命令行工具或其他图形界面工具,进入相关的数据库后,再执行:

alter table bbs_attach convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_cache convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_forum convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_forum_access convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_friendlink convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_group convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_haya_favorite convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_kv convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_modlog convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_mypost convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_mythread convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_notice convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_post convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_post_like convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_post_search convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_post_update_log convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_queue convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_session convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_session_data convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_table_day convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_tag convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_tag_cate convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_tag_thread convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_thread convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_thread_digest convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_thread_search convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_thread_top convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table bbs_user convert to character set utf8mb4 collate utf8mb4_general_ci;

接着修改配置文件/conf/conf.php,将相应的uft8改为utf8mb4。对于 4.0.4 版本,这两个字符串分别在第 15 行和第 31 行。(实际上只要改一处就行了,但如果你不知道改哪一处,就都修改)改完后类似这样,注意charset的值:

  array (
    'host' => 'localhost',
    'user' => 'root',
    'password' => 'password',
    'name' => 'database',
    'tablepre' => 'bbs_',
    'charset' => 'utf8mb4',
    'engine' => 'innodb',
  )

去发个贴看看 emoji,测试成功。
·支持emoji了
如此一来,论坛就支持原生 emoji 了。但这样的 emoji 的样式,会随着平台(操作系统和浏览器)的变化而变化,而某些旧的平台甚至不能显示。但至少不会像原来那样被论坛自身转换为问号了。如何将原生 emoji 统一样式,如何提供 emoji 选择插入功能,则不在本文讨论范围内了。

一个极简404错误页面。

预览
我是怎么写的呢?
源码见上。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="shortcut icon" href="https://abbs.longlanwack.xyz//view/img/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>404 ERROR</title>
<style>
    body{
        background-color:#000000
    ;
        font-size:14px;
    }
    h2{
        font-size:60px;
        color:#eee;
        text-align:center;
        padding-top:30px;
        font-weight:bold;
    }
</style>
</head>

<body>
<h2>404错误,服务器找不到您请求的文件!</h2>
<p style="font-size: 15px; text-align: center; color: #778899;">您的浏览器信息 / Your browser's information:<script>document.write(navigator.userAgent);</script></p>
<p style="text-align: center; font-size: 13px; color: #778899;">·  Powerwd by <a href="http://longlanwack.xyz/" style="color: #1E90FF;">LongLanWack</a></p>
</body>
</html>

唉只可惜我的技术有限,不能写出更好看的页面了,先凑合着用用吧~

话不多说直接上方法。

<title>LongLanWack's Blog</title>
<link rel="shortcut icon" href="https://abbs.longlanwack.xyz//view/img/favicon.ico">

效果如下:
图1·效果
总结:

语句一:<link rel="shortcut icon" href="图片地址" />
语句二:<link rel="icon" href="图片地址" type="image/gif" />

type可以设置多种图片类型。如:gif/png/ico
icon建议上32*32的

Sublime Text 3是一款跨平台代码编辑器(Code Editor)软件。Sublime Text 3既可以编写代码又可以编辑文本,是程序员必不可少的工具,相比之前的版本Sublime Text有了很大的改进,支持代码补全、代码折叠,自定义皮肤等功能,而且可以安装插件丰富其功能。支持多种语言和多种操作系统。

但是,我们刚刚下载的Sublime Text只是试用版,怎么解决呢?

只要输入激活码即可。

Sublime Text 3激活注册码 (亲测可用)

----- BEGIN LICENSE -----
Member J2TeaM
Single User License
EA7E-1011316
D7DA350E 1B8B0760 972F8B60 F3E64036
B9B4E234 F356F38F 0AD1E3B7 0E9C5FAD
FA0A2ABE 25F65BD8 D51458E5 3923CE80
87428428 79079A01 AA69F319 A1AF29A4
A684C2DC 0B1583D4 19CBD290 217618CD
5653E0A0 BACE3948 BB2EE45E 422D2C87
DD9AF44B 99C49590 D2DBDEE1 75860FD2
8C8BB2AD B2ECE5A4 EFC08AF2 25A9B864
------ END LICENSE ------​