我花了大量时间试图屏蔽表情符号。遵循互联网或 Stack Exchange 上的任何现有代码都会导致灾难:它们全部遗漏了大量的符号,也许不仅仅是因为无能/无知:Unicode 似乎年复一年地不断添加新的“块”。
为什么他们没有专门为“表情符号”设置一个明确定义的块/插槽范围,以便人们可以轻松且面向未来地阻止它们?
我真的很困惑他们怎么会(显然)做出这样的技术决定。我目前正在屏蔽以下整个 Unicode 范围:
- 装饰符号
- 表情符号
- 杂项符号
- 杂项符号和象形文字
- 交通和地图符号
- 补充符号和象形文字
- 符号和象形文字扩展-A
尽管其中一个实际上被称为“表情符号”,但它只包含一小部分“表情符号”。其余的都在上面的其他类别中,可能(显然)还包含其他类别。也可能是我屏蔽了某些范围,还包含合法符号...
即使所有这些射程都被封锁,仍然很多都以某种方式漏掉了。标志符号(
答案1
统一表情符号群的历史和发展只是现代的事情。
事实上,象形文字(又称 dingbat)在表情符号出现之前的字体和系统中已经存在了几十年。当你看到这些文字随处可见时,你需要假设它们是早期字符集的遗留物。
因此,如果您现在将某些字符视为表情符号,它们可能只是早期象形文字尝试的残余,现在为了实现向后兼容而被“表情符号化”。
当你这么说的时候:
“为什么他们没有专门为‘表情符号’设置一个明确定义的阻止/插槽范围,以便人们可以轻松地并且面向未来地阻止它们?”
你以为它们是凭空而来的,在使用表情符号之前,一切都是完美的。事实并非如此。许多象形文字在过去的字符集中就已经存在,而且——更令人困惑的是——许多字符集仅在特定地区和文化中常见。因此,没有人真正考虑过统一的块,而是考虑“我们可以在字符集中的哪里添加这些字符来满足我们地区/市场的技术需求。”
作为维基百科解释;粗体强调部分是我所加的:
“表情符号的流行给供应商和国际市场带来了压力,要求他们在 Unicode 标准中添加更多设计以满足不同文化的需求。Unicode 7.0 增加了大约 250 个表情符号,其中许多来自 Webdings 和 Wingdings 字体。现在被定义为表情符号的一些字符继承自多种不仅在日本使用的前统一码通讯系统,还包括雅虎和 MSN Messenger。Unicode 8.0 增加了另外 41 个表情符号,包括板球棒等运动器材、玉米饼等食物、十二生肖、新面部表情和礼拜场所的符号。”
西方世界的一项历史遗产是Zapf 标志它最初于 1977 年为非数字印刷用途而开发,但在 20 世纪 80 年代和 90 年代初期,随着 Zapf Dingbats 系列 100 在 PostScript 打印机上得到广泛实施,它在计算机世界中越来越受欢迎。
至于为什么您会看到它们是彩色的,这基本上是因为过去的象形文字在您的操作系统中呈现为彩色(如果该操作系统支持将此类字符呈现为全彩色表情符号)。
如果您想要检测并可能代码中是否存在表情符号,最好的办法是参考每个人都使用的源参考所提供的官方表情符号参考:官方 Unicode,Inc.列表在此处找到。
以下是最新的直接链接版本 13.1从 2020 年 9 月开始,你可以与版本 1.0从 2015 年 8 月开始。很多事情已经改变并且还在继续改变;针对表情符号进行编码意味着你将针对一个移动的目标进行编码。不幸的是,这就是这个野兽的本质。