变体 (Unicode)

Unicode 中,字符变体指通过编码字符序列显示同一字符的不同字形。这种变体序列(英语:variation sequence)由一个基本字符后紧跟一个变体选择符(variation selector)组成。

上方两个字形被合并到相同的 Unicode 编码,用户在纯文本环境下难以选择。开启了变体选择符,用户就可以指定显示哪一个字形。VS17设置为没有点的字体、VS18设置为有点的字体。

一个字符的变体通常与它的基本字符有非常相像的外观和涵义。这项技术旨在当一个字符的变体字形不可用时,仍显示其基本字符,却不改变文本本身的涵义。

Unicode 定义了两种变体序列:

  • 标准变体序列(SVS):由统一码字符数据库(UCD)文件StandardizedVariants.txt收录的变体序列[1]
  • 表意文字变体序列(IVS):由表意文字变体数据库(IVD)文件IVD_Sequences.txt收录的变体序列[2][3]

变体选择符定义于数个 Unicode区块内:

概述

 
葛飾区的葛
 
葛城市的葛

Unicode 是一个字符编码表,它只是一个表格,并不描绘每个字形的样式。同样意义的字符常会被赋予相同的编码。因此,在一些情况下,有必要区分不同的字形[4]

须注意的是,譬如拉丁字母“a”是否有从顶部向右延伸的线,通常不属于不同字形之间的差异,因为可以通过更改电脑字型来修改。可是,在中日韩统一表意文字中,本来根据 Unicode 的认同原则应该统合的汉字异体字字形,却在一些国家或地方的电脑应用标准里,经常被视为是“另一个字”的字形。举例说,“”与“”字形差异细微,读音、意义都一样,一般书写和阅读时都不会视为两个不同的字,理论上可以合并。但是,在个别国家或地区里,此二字在某些情况中出现时,会被当作相异的资讯。因此,根据情况,有时需要在纯文本英语Plain text上保存不同字形的区别,例如:

  • 在大部份操作系统中,档案名称是纯文本,不能区别在文本中不能区分的东西。
  • 输入法可以输入的字符串一般都是纯文本[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]

字形规格

  • OpenType1.5版使用了“Unicode变体选择符(Unicode Variation Sequences)”规格[15]
  • SVG不仅局限于IVS,亦可以任意Unicode编码[16]

字体创建工具

  • FontForge - 2007年10月2日之后[17]
  • Adobe Font Development Kit for OpenType (AFDKO) 2.1版之后[18]
  • TTX/FontTools - GlyphWiki来生成IVS对应字体[19]
  • TTEdit - 对应生成IVS TrueType字体。

2007年10月FreeType以后的开发板内置了API工具[20]

软件

 
在Alpha及Y.OzFont,以UTS #37输入以下文字“田さんは屋のお嬢様だ”,“”字之下的“”分别为新字体旧字体

参考资料

  1. ^ UCD: Standardized Variation Sequences. Unicode Consortium. [2023-05-02]. (原始内容存档于2021-02-09). 
  2. ^ Ideographic Variation Database. Unicode Consortium. [2023-05-02]. (原始内容存档于2022-01-05). 
  3. ^ UTS #37, Unicode Ideographic Variation Database. Unicode Consortium. [2023-05-02]. (原始内容存档于2022-06-24). 
  4. ^ Unicode Technical Report #17 - Character Encoding Model. 2004-09-09 [2008-02-02]. (原始内容存档于2015-06-25). 
  5. ^ 川俣晶. Windows NT 日本語処理ガイドブック (PDF). Windows NT 汉字処理技术协议会. 1998-10-30: p.5 [2018-08-21]. (原始内容存档 (PDF)于2016-03-08). 
  6. ^ アプリケーション開発者向け Windows Vista 対応アプリケーションの互換性: 68. [2008-02-02]. [永久失效链接] デモ映像页面存档备份,存于互联网档案馆
  7. ^ アップル - Pro - 技術情報 - Mac OS Xと日本語タイポグラフィ 第5回:ヒラギノProの漢字を巡る座談会 - ページ6. [2008-02-15]. (原始内容存档于2008-02-21). 
  8. ^ Format Characters Suitable for Use with Markup. 2003-06-13 [2008-02-02]. (原始内容存档于2007-12-11). 
  9. ^ 通常简称“SVS”,但这并不是官方简称。
  10. ^ StandardizedVariants.txt. Unicode Consortium. 2015-11-20 [2017-06-01]. (原始内容存档于2017-05-11). 
  11. ^ Unicode® Technical Standard #37 UNICODE IDEOGRAPHIC VARIATION DATABASE. Unicode Consortium. [2017-10-05]. (原始内容存档于2017-09-21). 
  12. ^ emoji-variation-sequences.txt. Unicode Consortium. [2017-10-06]. (原始内容存档于2017-11-17) (英语). 
  13. ^ なおAdobe-Japan1-6の文字セットに含まれる汉字は14,664个である
  14. ^ 安冈孝一. UnicodeのIVSがもたらすメリットとデメリット - 新常用漢字が引き起こす文字コード問題. 2011-01-24 [2011-02-01]. (原始内容存档于2011-01-31). 
  15. ^ Microsoft Typography - OpenType Specification. 2008-01-29 [2008-03-10]. (原始内容存档于2008-10-09). 
  16. ^ Fonts – SVG 1.1 (Second Edition). [2011-02-01]. (原始内容存档于2018-10-12). 
  17. ^ Change log for FontForge. 2008-03-09 [2008-03-10]. (原始内容存档于2009-07-23). 
  18. ^ Ideographic Variation Sequences (PDF): p.10. 2007-10-17 [2008-03-10]. [永久失效链接]
  19. ^ GlyphWiki:フォント生成. [2011-01-19]. (原始内容存档于2010-10-31). 
  20. ^ freetype-devel (thread). 2007-10-31 [2008-03-10]. (原始内容存档于2013-07-03). 
  21. ^ Biotronique - Computing - 実は異体字セレクタに対応済のWindows 7. 2009-12-02 [2009-12-03]. (原始内容存档于2016-03-05). 
  22. ^ 田丸健三郎、小林龙生. Unicode IVS/IVD入門. ISBN 978-4822294830. 
  23. ^ FAQ - Display of Unsupported Characters. [2011-01-19]. (原始内容存档于2011-03-14). 
  24. ^ 24.0 24.1 Ken Lunde. IVS (Ideographic Variation Sequence) support in OSes. [2011-02-01]. (原始内容存档于2009-09-01). 
  25. ^ ヒラギノとMac OS Xのバージョン相関表. 2014-07-08 [2014-09-17]. (原始内容存档于2014-08-22). 
  26. ^ Alpha の бесполезный な日記. 2008-03-04 [2008-03-10]. (原始内容存档于2008-03-08). 
  27. ^ Emacs 23 と Lookup. [2011-01-19]. (原始内容存档于2010-10-16). 
  28. ^ EmEditor Professional 11 の特長. [2011-09-24]. (原始内容存档于2011-09-19). 
  29. ^ Foo Editor. [2013-10-13]. (原始内容存档于2013-07-03). 
  30. ^ Windows7でIVSの表示テスト. [2011-01-19]. [永久失效链接]
  31. ^ Bug 552460 - implement Ideographic Variation Sequences support. [2011-01-19]. (原始内容存档于2014-06-02). 
  32. ^ Bug 989557 - Support fallback for CJK Compatibility Ideographs Standardized Variants. [2014-09-17]. (原始内容存档于2014-09-04). 
  33. ^ SVGフォントでIVSを表示するテスト. [2011-01-19]. (原始内容存档于2010-02-03). 
  34. ^ Unicode IVS Add-in for Microsoft Office. [2012-11-12]. (原始内容存档于2012-11-11). 

延伸阅读

参见

外部链接