在 Unicode 中,字符变体指通过编码字符序列显示同一字符的不同字形。这种变体序列(英语:variation sequence)由一个基本字符后紧跟一个变体选择符(variation selector)组成。
一个字符的变体通常与它的基本字符有非常相像的外观和涵义。这项技术旨在当一个字符的变体字形不可用时,仍显示其基本字符,却不改变文本本身的涵义。
Unicode 定义了两种变体序列:
- 标准变体序列(SVS):由统一码字符数据库(UCD)文件
StandardizedVariants.txt
收录的变体序列[1] - 表意文字变体序列(IVS):由表意文字变体数据库(IVD)文件
IVD_Sequences.txt
收录的变体序列[2][3]
变体选择符定义于数个 Unicode区块内:
概述
Unicode 是一个字符编码表,它只是一个表格,并不描绘每个字形的样式。同样意义的字符常会被赋予相同的编码。因此,在一些情况下,有必要区分不同的字形[4]。
须注意的是,譬如拉丁字母“a”是否有从顶部向右延伸的线,通常不属于不同字形之间的差异,因为可以通过更改电脑字体来修改。可是,在中日韩统一表意文字中,本来根据 Unicode 的认同原则应该统合的汉字异体字字形,却在一些国家或地方的电脑应用标准里,经常被视为是“另一个字”的字形。举例说,“値”与“值”字形差异细微,读音、意义都一样,一般书写和阅读时都不会视为两个不同的字,理论上可以合并。但是,在个别国家或地区里,此二字在某些情况中出现时,会被当作相异的资讯。因此,根据情况,有时需要在纯文本上保存不同字形的区别,例如:
- 在大部分操作系统中,文件名称是纯文本,不能区别在文本中不能区分的东西。
- 输入法可以输入的字符串一般都是纯文本[5]。即使用户可以使用桌面出版应用程式选择不同字体来显示,除了与输入正常字符有不同的操作外,还必须记住正确的组合,这对于大多数普通用户来说并不实用。例如在 Windows Vista 日语版中,可以区分显示“葛飾区”的“”和“葛城市”的“”[6],不过“”与“”在Unicode编码上并无区别,其输入法无法正确转换。
- 用于发送电邮的 SMTP 等网络传输协议是用纯文本发送的,因此不能区分一些相同编码字符的不同字形[7]。
为了应付这类情况,早期 Unicode 碰到在有关国家或地区既有码表已分别编码的字,像“値”与“值”,就会放弃认同原则,改以原字集分离原则来把两个字形分别编码。但若当时有关国家或地区没有把异体字分别编码,像日本的JIS90只收录了一个“葛”字,Unicode就不会分别编码。
变体选择符是为了在 Unicode 中解决上述问题而设计出的特殊的“字符”,让有着相同码位的异体字(即“葛”字这类例子)可在纯文本环境下分别显示出来。它可以根据前后文来判断,决定在当前文本中所使用的文字,并由变体选择符选择不同的字形[8]。请注意,显示出来的会是变体选择符所指定的字形,而不是变体选择符本身。
种类
变体序列一般分两种:标准变体序列(Standardized Variation Sequence,简称“SVS”[9]),以及表意文字变体序列(Ideographic Variation Sequence,简称“IVS”)。
SVS 在非汉字及中日韩统一表意文字中均有启用,这种字形选择,定义为 Unicode 的标准化变体[10]。要在标准化变体里添加字形,是统一码联盟的工作。
另一方面,IVS 是汉字专用的变体选择符,字形收集是由表意文字变体数据库(Ideographic Variation Database,简称为“IVD”)定义的。要想在 IVD 中增加字形,也必须根据规定向统一码联盟申请[11]。
截至2017年12月,由变体序列所使用的变体字符如下所示:
标准变体序列录入的字集和数量
表意文字变体数据库录入的字集和数量
- CID之Adobe-Japan1集:14,683个[13]
- 通用电子资讯交换环境整顿计划之Hanyo-Denshi集:13,045个
- 文字资讯基础整备事业之Moji_Joho集:11,384个
- 澳门特别行政区之MSARG集:21个
- 韩国之KRName集:36个
但是Hanyo-Denshi与Adobe-Japan1有很多重复[14]。
- Windows 7在资源管理器的所显示文件名及记事本中可以生成异体字字形。但是需要字体支持[21]。
- Windows 8以后,采用IVS处理[22]。
- Mac OS X 10.5标准文本和绘制处理遵从default ignorable属性[23],不会渲染异体字,也不支持字形切换。
- Mac OS X 10.6开始自建标准文本的绘制处理可支持字形的转换[24],但和Windows 7同标准的字体Hiragino未支持变体选择符。
- Mac OS X Lion(10.7)则采用了Adobe-Japan1的IVS[25]。
- Alpha(文本编辑器) - 2008年2月在IVS-OTFT测试公开版中,通过将变体选择符的资讯转换为opentype功能标签的资讯,对应于由不同体字选择符进行的字形切换[26]。
- gdi++
- Emacs 23[27]
- EmEditor v11之后[28]
- FooEditor (文本编辑器)[29]
- gPad(文本编辑器)
- Mery (文本编辑器)
- oedit (文本编辑器)
- Adobe Reader 9、Flash Player 10、Adobe InDesign CS4之后的Adobe软件[24]。
- Windows 7及之上的Opera(Presto)[30]
- Mozilla Firefox版本4之后[31]。另外,在版本31以后,改由CJK来实现该功能[32]。
- WebKit可以支持SVG字体,由SVG字体定义的IVS进行字形切换。这与Opera相同[33]。
- Microsoft Office 2007 - 2010版本需要附加Unicode IVS Add-in for Microsoft Office插件[34],2010之后的默认自带。
- LibreOffice 4.1之后/Apache OpenOffice 4.0之后
参考资料
延伸阅读
参见
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.