我非常喜欢“霞鹜文楷”系列字体,所以专门有个油猴脚本是把特定域的字体全替换成LxgwWenKai,某些页面还有一些需要“特殊关照”的逻辑。我都是遇到一个问题就修一个问题。
今天突然发现微博群聊消息出现了一个方块字,查了下Unicode后发现这只是一个emoji,为什么会显示不出来呢?检查了下脚本自己试着古法手动改了几版都还是无法显示,怀疑自己是不是太久不写css已经学废了。只好请教GPT和Gemini,他们各给出了一些修改方案,测下来也还都是方块字。
我prompt大意是“我以前网页是可以显示emoji的,但用了这份油猴脚本之后emoji就变成了方块,请帮我分析并修复一下。”
我没改对,这比较正常,把脚本源码和情况都告诉AI还解决不了一个100行不到的油猴脚本问题我觉得不太对劲。于是我停下来回到问题的最初再琢磨了一下是什么地方想错了。
原来的思路是:群聊消息出现方块字→方块字只是emoji→以前正常,开了油猴脚本就不行→修复油猴脚本→问题就能解决。
如果上面这个链路都是对的,那问题就能解决。所以每一环都是“对的”吗?我看到了“以前正常,开了油猴脚本就不行”这一步,这是我的描述,我其实没验证过。
我把这个脚本禁用掉,刷新网页,翻到那条出现方块字的消息,还是方块字。
所以说“以前正常”是我的幻觉。出现方块字的原因并不是脚本有什么问题,而是我这个老破系统上压根就没有可以渲染这个emoji的字体。AI应该是注意到“以前正常”这个信息,所以没有给我提供任何引入新字体的方案。(The X-Y Problem)
知道哪里出错后问题就简单多了,我在脚本中引入了”Noto Color Emoji”,刷新,方块字含泪微笑。
————
这次发现变方块的emoji是:🥹(U+1F979)含泪微笑,2021年9月才引入到Emoji标准中,2022年初各大平台和软件才算完成新emoji的适配。从“网龄”来看,这款emoji算是新人,但是这些新引入的emoji一般都火起来比较快,所以我想大家都会觉得他比较眼熟。
emoji火不火其实还和各平台绘制有一定关系。因为Unicode只负责给个英文定义,比如🥹的定义就是“FACE HOLDING BACK TEARS”。具体画成怎样,每家都有自己的画风,甚至这些画风还会迭代变更。
