尝试解决B站不显示【示亡号】的问题
綿雲飴里
2023年01月29日 21:45
收录于文集
共48篇

示亡号(mark of indicating death)也称示殁号,形如套在人名外面的方框,这是我国的用法。外文示亡可用剑号(†)置于卒年前。其来源稍有争议,若视为标点符号,不列在国家标准《标点符号用法》之内。统一码当然没有的,因此需要解决它。

假使统一码会收录,那么这个符号可能位于哪里?它有套在别的字符上的性质,似乎应考虑

‣ 20D0..结合变音记号|Combining Diacritical Marks for Symbols

此区段有个现成的符号可以给前一个字符套方框:   ◌⃞ U+20DE COMBINING ENCLOSING SQUARE

但是示亡号套的汉字数目是不定的,而且应该不适用套非汉字?我考虑至少拆为始、终2个字符,即

‣ 示亡号开 mark of indicating death open? ‣ 示亡号闭 mark of indicating death shut?

这个符号在最近出现次数太多了:

而B站的一个举措,让我觉得示亡号有充足的理由被统一码收录:

注意品红色箭头所指,因为没有示亡号,b站用【】代替

针对这个【林奇】特例可以单独处理。

我的非原创字体大多以Monu开头,而 Monu Hani 是我的一个应对汉字(ISO 15924:Hani)的字体,用了思源黑体等加工。

这里我使用字体OpenType特性:上下文替换 Contextual Alternates (calt),代码如下(.fea):

代码块
text/x-nginx-conf
自动换行
复制代码
lookup 示殁 { # GSUB lookup type 单字替换
    sub 【 by MIDo; # 示亡号开
    sub 】 by MIDs; # 示亡号闭
} MoID;

lookup calt { # GSUB lookup type 上下文替换
    sub 【' lookup 示殁 林 奇 】;
    sub MoID 林 奇 】' lookup 示殁;
} calt;
复制成功

由此MonuHani升级至第9版,下载地址:github.com/MY1L/Unicode/releases

安装字体后,临时给浏览器扩展如Stylus添加一个样式:

代码块
text/css
自动换行
复制代码
@-moz-document domain("bilibili.com") {
* {
font-family:"你喜好的不含汉字的字体",Monu Hani,Microsoft YaHei UI,Monu Last,sans-serif!important
	}
}
复制成功

实际浏览器渲染效果如图:

请审核注意,此图为未修改截屏,没有不适宜内容

不过这个样式预期会覆盖以下2个区段所有汉字,不建议长期用它:

‣ 3400..中日韩统一表意扩充甲|CJK Unified Ideographs Extension A ‣ 4E00..中日韩统一表意文字|CJK Unified Ideographs

(不如说这就是我做 MonuHani 第9版的目的🥴)