1

一个unicode问题

 2 years ago
source link: https://blog.huoding.com/2022/02/25/975
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

火丁笔记

多研究些问题,少谈些主义。

火丁笔记 搜索

← 上一篇

一个unicode问题

发表于2022-02-25

最近我在处理从 pdf 转换到 docx 的时候,总会出现丢字问题,让我一度以为是字体的原因,结果方正思源文泉驿换了个遍也没搞定,最终发现是一个 unicode 问题。

我用 javascript 构造了一个测试用例,你可以在 chrome 控制台里运行它:

console.log("网飞" == "⽹⻜") // false

明明两个字符串都是「网飞」,但是却不一样!通常此类问题多半是内容中混入了某些不可见字符导致的问题,不过本例却是个例外。如果你把上面代码复制到一个 Word 文档里,那么会发现后面的内容不见了,也就是丢字了!问题分析到这里,我心想该不会同一个汉字有不同的 unicode 编码吧,于是我在 charbase 里检索了一下:

下面是正常的字,其在 unicode 中属于 CJK Unified Ideographs 部分:

正常的网字

下面是异常的字,其在 unicode 中属于 Kangxi Radicals 部分:

异常的网字

下面是正常的字,其在 unicode 中属于 CJK Unified Ideographs 部分:

正常的飞字

下面是异常的字,其在 unicode 中属于 CJK Radicals Supplement 部分:

异常的飞字

综上所述,我们平常使用的「正常」的汉字属于「CJK Unified Ideographs」,而那些「异常」的汉字属于「Kangxi Radicals」和「CJK Radicals Supplement」,实际上它们是汉字中的「部首」,通常它们不会出现在内容中才对,可是为什么在我的 pdf 文档里会频繁出现呢?因为我的 pdf 文档都是通过 typora 生成的,所以我猜测可能是 typora 出于某种目的有意为之,当然也可能是我以小人之心度君子之腹了。

最后讲一个笑话吧:话说有一个人,他为了玩游戏需要注册一个账号,本来他想叫「雪山飞狐」,但是被人用了,叫「雪山飞狼」也重复,结果他不停的改啊改,最后不得已叫了「雪山飞猪」。如果他看过本文的话, 那么他应该有办法注册自己心仪的账号了。

此条目是由老王发表在Technical分类目录的。将固定链接加入收藏夹。

《一个unicode问题》上有1个想法

  1. 麦芒扎着疼在2022-02-25 20:55:16说道:

    看完文章我本来想点个赞,但发现没赞按钮

发表评论 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论 *

显示名称 *

电子邮箱地址 *

网站地址


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK