变体 (Unicode)
在 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]。
字形規格
[编辑]字體創建工具
[编辑]- 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之後
參考資料
[编辑]- ^ UCD: Standardized Variation Sequences. Unicode Consortium. [2023-05-02]. (原始内容存档于2021-02-09).
- ^ Ideographic Variation Database. Unicode Consortium. [2023-05-02]. (原始内容存档于2022-01-05).
- ^ UTS #37, Unicode Ideographic Variation Database. Unicode Consortium. [2023-05-02]. (原始内容存档于2022-06-24).
- ^ Unicode Technical Report #17 - Character Encoding Model. 2004-09-09 [2008-02-02]. (原始内容存档于2015-06-25).
- ^ 川俁晶. Windows NT 日本語処理ガイドブック (PDF). Windows NT 漢字処理技術協議会. 1998-10-30: p.5 [2018-08-21]. (原始内容存档 (PDF)于2016-03-08).
- ^ アプリケーション開発者向け Windows Vista 対応アプリケーションの互換性: 68. [2008-02-02].[永久失效連結] デモ映像 (页面存档备份,存于互联网档案馆)
- ^ アップル - Pro - 技術情報 - Mac OS Xと日本語タイポグラフィ 第5回:ヒラギノProの漢字を巡る座談会 - ページ6. [2008-02-15]. (原始内容存档于2008-02-21).
- ^ Format Characters Suitable for Use with Markup. 2003-06-13 [2008-02-02]. (原始内容存档于2007-12-11).
- ^ 通常簡稱「SVS」,但這並不是官方簡稱。
- ^ StandardizedVariants.txt. Unicode Consortium. 2015-11-20 [2017-06-01]. (原始内容存档于2017-05-11).
- ^ Unicode® Technical Standard #37 UNICODE IDEOGRAPHIC VARIATION DATABASE. Unicode Consortium. [2017-10-05]. (原始内容存档于2017-09-21).
- ^ emoji-variation-sequences.txt. Unicode Consortium. [2017-10-06]. (原始内容存档于2017-11-17) (英语).
- ^ なおAdobe-Japan1-6の文字セットに含まれる漢字は14,664個である
- ^ 安岡孝一. UnicodeのIVSがもたらすメリットとデメリット - 新常用漢字が引き起こす文字コード問題. 2011-01-24 [2011-02-01]. (原始内容存档于2011-01-31).
- ^ Microsoft Typography - OpenType Specification. 2008-01-29 [2008-03-10]. (原始内容存档于2008-10-09).
- ^ Fonts – SVG 1.1 (Second Edition). [2011-02-01]. (原始内容存档于2018-10-12).
- ^ Change log for FontForge. 2008-03-09 [2008-03-10]. (原始内容存档于2009-07-23).
- ^ Ideographic Variation Sequences (PDF): p.10. 2007-10-17 [2008-03-10].[永久失效連結]
- ^ GlyphWiki:フォント生成. [2011-01-19]. (原始内容存档于2010-10-31).
- ^ freetype-devel (thread). 2007-10-31 [2008-03-10]. (原始内容存档于2013-07-03).
- ^ Biotronique - Computing - 実は異体字セレクタに対応済のWindows 7. 2009-12-02 [2009-12-03]. (原始内容存档于2016-03-05).
- ^ 田丸健三郎、小林龍生. Unicode IVS/IVD入門. ISBN 978-4822294830.
- ^ FAQ - Display of Unsupported Characters. [2011-01-19]. (原始内容存档于2011-03-14).
- ^ 24.0 24.1 Ken Lunde. IVS (Ideographic Variation Sequence) support in OSes. [2011-02-01]. (原始内容存档于2009-09-01).
- ^ ヒラギノとMac OS Xのバージョン相関表. 2014-07-08 [2014-09-17]. (原始内容存档于2014-08-22).
- ^ Alpha の бесполезный な日記. 2008-03-04 [2008-03-10]. (原始内容存档于2008-03-08).
- ^ Emacs 23 と Lookup. [2011-01-19]. (原始内容存档于2010-10-16).
- ^ EmEditor Professional 11 の特長. [2011-09-24]. (原始内容存档于2011-09-19).
- ^ Foo Editor. [2013-10-13]. (原始内容存档于2013-07-03).
- ^ Windows7でIVSの表示テスト. [2011-01-19].[永久失效連結]
- ^ Bug 552460 - implement Ideographic Variation Sequences support. [2011-01-19]. (原始内容存档于2014-06-02).
- ^ Bug 989557 - Support fallback for CJK Compatibility Ideographs Standardized Variants. [2014-09-17]. (原始内容存档于2014-09-04).
- ^ SVGフォントでIVSを表示するテスト. [2011-01-19]. (原始内容存档于2010-02-03).
- ^ Unicode IVS Add-in for Microsoft Office. [2012-11-12]. (原始内容存档于2012-11-11).
延伸閱讀
[编辑]- The Unicode Consortium. The Unicode Standard, Version 5.0. Addison-Wesley Professional. 2006-11-03 [2018-08-21]. ISBN 978-0321480910. (原始内容存档于2008-06-10).(英文)
- ISO/IEC JTC 1. ISO/IEC 10646:2003 Information technology -- Universal Multiple-Octet Coded Character Set (UCS). 2003-12-15 [2018-08-21]. (原始内容存档于2018-08-20).(英文)
- ISO/IEC JTC 1. ISO/IEC 10646:2003/Amd 1:2005 Glagolitic, Coptic, Georgian and other characters. 2005-11-18 [2018-08-21]. (原始内容存档于2018-08-20).(英文)
- 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]. (原始内容存档于2018-08-20).(英文)
- 日本規格協会. JIS X 0221:2007 国際符号化文字集合 (UCS). 2007-12-20 [2018-08-21]. (原始内容存档于2009-05-24). 上記3資料を併合して日本語訳したもの。
- 朱一星. 關於統一碼 (Unicode) 漢字編碼框架的理論問題. 2016-01-01 [2019-08-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所有可用的變體。