异体字选择器[1](英语:Variation Selector,简称“VS”)是一种在Unicode和ISO/IEC 10646 (UCS) 上,用来准确、具体地指定选择哪个文字字形的程序。
描述
Unicode是一个编码表,它只是一个表格,没有描绘每个字形的样式,同样意义的字符常会被赋予相同的编码。因此,在一些情况下,我们有必要区分不同的字形[2][3]。
须注意的是,譬如拉丁字母“a”是否有从顶部向右延伸的线,通常不属于不同字形之间的差异,因为可以通过更改电脑字型来修改。可是,在中日韩统一表意文字中,本来根据Unicode的认同原则应该统合的汉字异体字字形,却在一些国家或地方的电脑应用标准里,经常被视为是“另一个字”的字形。举例说,“値”与“值”字形差异细微,读音、意义都一样,一般书写和阅读时都不会视为两个不同的字,理论上可以合并。可是,在个别国家或地区里,此二字在某些情况中出现时,会被当作相异的资讯,比如在人名登记时,“林値喜”与“林值喜”是不同的人,该国家或地区的原来字符集已区分作两个字。因此,根据情况,有时我们得在纯文本上保存不同字形的区别,例如:
- 在大部分操作系统中,文件名是纯文本,不能区别在文本中不能区分的东西。
- 输入法可以输入的字符串一般都是纯文本[4]。即使用户可以选择不同字型来显示,却要花上额外时间去处理。(现在,随着输入法技术的进步,问题已略有改善。例如从Windows Vista开始,其日文输入法已经可以区分“葛飾区”的“”和“葛城市”的“”了[5],不过“”与“”在Unicode编码上并无区别[6],造成了不少麻烦。)
- 用于发送电子邮件的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月,由异体字选择器所使用的异体字如下所示:
Standardized Variants录入的字集和数量
IVD(2017-12-12版)录入的字集和数量
- CID之Adobe-Japan1集:14,683个[13]
- 通用电子信息交换环境整顿计划之Hanyo-Denshi集:13,045个
- 文字信息基础整备事业之Moji_Joho集:11,384个
- 澳门特别行政区之MSARG集:21个
- 韩国之KRName集:36个
但是Hanyo-Denshi与Adobe-Japan1有很多重复[14]。
字形规格
字体创建工具
- 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]。
软件
- 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之后
参考资料
- ↑ JIS X 0221:2007的规格票中,该技术被译作“字形選択子”,但与之完全不同的“Character shaping selectors”也采用该译名。为避免混乱,该技术在日文中也称作“異体字セレクタ”以作区别。本文按后者直译作“异体字选择器”。
- ↑ Unicode Technical Report #17 - Character Encoding Model. 2004-09-09 [2008-02-02].
- ↑ 不同的字采用相同的编码,是因为早期Unicode定义字形的16点点阵字空间不足,不够将所有汉字的正确形态一一描述。
- ↑ 川俣晶. Windows NT 日本語処理ガイドブック (PDF). Windows NT 汉字处理技术协议会. 1998-10-30: p.5 [2018-08-21].
- ↑ アプリケーション開発者向け Windows Vista 対応アプリケーションの互換性: 68. [2008-02-02].[永久失效链接] デモ映像
- ↑ Mac専用日本語入力プログラム“egbridge Universal” 製品情報 エルゴソフト. [2008-02-15].
- ↑ アップル - Pro - 技術情報 - Mac OS Xと日本語タイポグラフィ 第5回:ヒラギノProの漢字を巡る座談会 - ページ6. [2008-02-15].
- ↑ Format Characters Suitable for Use with Markup. 2003-06-13 [2008-02-02].
- ↑ 通常简称“SVS”,但这并不是官方简称。
- ↑ StandardizedVariants.txt. Unicode Consortium. 2015-11-20 [2017-06-01].
- ↑ Unicode® Technical Standard #37 UNICODE IDEOGRAPHIC VARIATION DATABASE. Unicode Consortium. [2017-10-05].
- ↑ emoji-variation-sequences.txt. Unicode Consortium. [2017-10-06] (英语).
- ↑ なおAdobe-Japan1-6の文字セットに含まれる汉字は14,664个である
- ↑ 安冈孝一. UnicodeのIVSがもたらすメリットとデメリット - 新常用漢字が引き起こす文字コード問題. 2011-01-24 [2011-02-01].
- ↑ Microsoft Typography - OpenType Specification. 2008-01-29 [2008-03-10].
- ↑ Fonts – SVG 1.1 (Second Edition). [2011-02-01].
- ↑ Change log for FontForge. 2008-03-09 [2008-03-10].
- ↑ Ideographic Variation Sequences (PDF): p.10. 2007-10-17 [2008-03-10].[永久失效链接]
- ↑ GlyphWiki:フォント生成. [2011-01-19].
- ↑ freetype-devel (thread). 2007-10-31 [2008-03-10].
- ↑ Biotronique - Computing - 実は異体字セレクタに対応済のWindows 7. 2009-12-02 [2009-12-03].
- ↑ 田丸健三郎、小林龙生. Unicode IVS/IVD入門. ISBN 978-4822294830.
- ↑ FAQ - Display of Unsupported Characters. [2011-01-19].
- ↑ 24.0 24.1 Ken Lunde. IVS (Ideographic Variation Sequence) support in OSes. [2011-02-01].
- ↑ ヒラギノとMac OS Xのバージョン相関表. 2014-07-08 [2014-09-17].
- ↑ Alpha の бесполезный な日記. 2008-03-04 [2008-03-10].
- ↑ Emacs 23 と Lookup. [2011-01-19].
- ↑ EmEditor Professional 11 の特長. [2011-09-24].
- ↑ Foo Editor. [2013-10-13].
- ↑ Windows7でIVSの表示テスト. [2011-01-19].[永久失效链接]
- ↑ Bug 552460 - implement Ideographic Variation Sequences support. [2011-01-19].
- ↑ Bug 989557 - Support fallback for CJK Compatibility Ideographs Standardized Variants. [2014-09-17].
- ↑ SVGフォントでIVSを表示するテスト. [2011-01-19].
- ↑ Unicode IVS Add-in for Microsoft Office. [2012-11-12].
延伸阅读
- The Unicode Consortium. The Unicode Standard, Version 5.0. Addison-Wesley Professional. 2006-11-03 [2018-08-21]. ISBN 978-0-321-48091-0.(英文)
- ISO/IEC JTC 1. ISO/IEC 10646:2003 Information technology -- Universal Multiple-Octet Coded Character Set (UCS). 2003-12-15 [2018-08-21].(英文)
- ISO/IEC JTC 1. ISO/IEC 10646:2003/Amd 1:2005 Glagolitic, Coptic, Georgian and other characters. 2005-11-18 [2018-08-21].(英文)
- ISO/IEC JTC 1. ISO/IEC 10646:2003/Amd 2:2006 N'Ko, Phags-pa, Phoenician and other characters. 2006-07-04 [2018-08-21].(英文)
- 日本规格协会. JIS X 0221:2007 国際符号化文字集合 (UCS). 2007-12-20 [2018-08-21]. 上记3资料を并合して日本语译したもの。
- 朱一星. 關於統一碼 (Unicode) 漢字編碼框架的理論問題. 2016-01-01 [2019-08-01].(中文),页面
参见
外部链接
- Standardized Variants - Unicode (英文) (已录入的SVS一览)
- Unicode Technical Standard #37 - Unicode Ideographic Variation Database (英文) (IVD结构和注册程序)
- Ideographic Variation Database - Unicode (英文) (关于IVD)
- IVD Sequences - Unicode (2017-12-12版) (英文) (IVD登记的汉字的组合列表)
- 异体字选择器 - 搜索SVS・IVS所有可用的变体。