在Unicode中,字符变体指通过编码字符序列显示同一字符的不同字形。这种变体序列()由一个基本字符后紧跟一个变体选择符(variation selector)组成。
一个字符的变体通常与它的基本字符有非常相像的外观和涵义。这项技术旨在当一个字符的变体字形不可用时,仍显示其基本字符,却不改变文本本身的涵义。
Unicode定义了两种变体序列:
- 标准变体序列():由统一码字符数据库()文件StandardizedVariants.txt收录的变体序列
- 表意文字变体序列():由表意文字变体数据库()文件IVD_Sequences.txt收录的变体序列
变体选择符定义于数个Unicode区块内:
- 变体选择符(16个字符,缩写:VS1—VS16)
- 變體選擇符補充(240个字符,缩写:VS17—VS256)
- 蒙古文自由变体选择符(3个字符,缩写:FVS1—FVS3)
概述
的葛]]
的葛]]
Unicode是一個字符編碼表,它只是一個表格,并不描繪每個字形的樣式。同樣意義的字符常會被賦予相同的編碼。因此,在一些情況下,有必要區分不同的字形。
須注意的是,譬如拉丁字母「a」是否有從頂部向右延伸的線,通常不屬於不同字形之間的差異,因為可以通過更改電腦字型來修改。可是,在中日韓統一表意文字中,本來根據Unicode的認同原則應該統合的漢字異體字字形,卻在一些國家或地方的電腦應用標準裏,經常被視為是「另一個字」的字形。擧例說,「」與「」字形差異細微,讀音、意義都一樣,一般書寫和閱讀時都不會視為兩個不同的字,理論上可以合併。但是,在個別國家或地區裏,此二字在某些情況中出現時,會被當作相異的資訊。因此,根据情況,有時需要在純文本上保存不同字形的區別,例如:
- 在大部份操作系統中,檔案名稱是純文本,不能區別在文本中不能區分的東西。
- 輸入法可以輸入的字符串一般都是純文本。即使用戶可以使用桌面出版应用程序選擇不同字型來顯示,除了与输入正常字符有不同的操作外,还必须记住正确的组合,这对于大多数普通用户来说并不实用。例如在Windows Vista日语版中,可以區分显示「」的「」和「」的「」,不過「」與「」在Unicode編碼上並無區別,其输入法无法正确转换。
- 用於發送電子郵件的SMTP等网络传输协议是用純文本發送的,因此不能区分一些相同編碼字符的不同字形。
爲了應付這類情況,早期Unicode碰到在有關國家或地區既有碼表已分別編碼的字,像「」與「」,就會放棄認同原則,改以原字集分離原則來把兩個字形分別編碼。但若當時有關國家或地區沒有把異體字分別編碼,像日本的JIS90-{只}-收錄了一個「葛」字,Unicode就不會分別編碼。
變體選擇符是為了在Unicode中解決上述問題而設計出的特殊的「字符」,讓有着相同碼位的異體字(即「葛」字這類例子)可在純文本環境下分別顯示出來。它可以根據前後文來判斷,決定在當前文本中所使用的文字,並由變體選擇符選擇不同的字形。請注意,顯示出來的會是變體選擇符所指定的字形,而不是變體選擇符本身。
種類
变体序列一般分兩種:标准变体序列(Standardized Variation Sequence,簡稱「SVS」),以及表意文字变体序列(Ideographic Variation Sequence,簡稱「IVS」)。
SVS在非漢字及中日韓統一表意文字中均有启用,这種字形選擇,定義為Unicode的標準化變體。要在標準化變體裏添加字形,是統一碼聯盟的工作。
另一方面,IVS是漢字專用的變體選擇符,字形收集是由表意文字變體數據庫(Ideographic Variation Database,簡稱為「IVD」)定義的。要想在IVD中增加字形,也必須根據規定向統一碼聯盟申請。
截至Unicode 16,由变体序列所使用的變體字符如下所示:
标准变体序列錄入的字集和數量
- 數學符號表:25個
- 緬文:27個
- 八思巴字母:6個
- 摩尼字母:5個
- 傳統蒙古文:60個
- 中日韓統一表意文字:1,002個
- 圣书体:旋转变体101個,另有8個在歷次UTC Consensus已被刪除;扩展变体4個
- 繪文字:702個(文本類型和圖形文字的類型351個)
表意文字變體數據庫錄入的字集和數量
- CID之Adobe-Japan1集:14,683個
- 通用電子信息交換環境整頓計劃之Hanyo-Denshi集:13,045個
- 文字信息基礎整備事業之Moji_Joho集:11,384個
- 澳門特別行政區之MSARG集:21個
- 韓國之KRName集:36個
但是Hanyo-Denshi與Adobe-Japan1有很多重複。
字形規格
- OpenType1.5版使用了「Unicode變體選擇符(Unicode Variation Sequences)」規格。
- SVG不僅局限於IVS,亦可以任意Unicode編碼。
字體創建工具
- FontForge - 2007年10月2日之後。
- Adobe Font Development Kit for OpenType (AFDKO) 2.1版之後。
- TTX/FontTools - GlyphWiki來生成IVS對應字體。
- TTEdit - 對應生成IVS TrueType字體。
庫
2007年10月FreeType以後的開發板内置了API工具。
軟件
- Windows 7在資源管理器的所顯示文件名及記事本中可以生成異體字字形。但是需要字體支持。
- Windows 8以後,採用IVS處理。
- Mac OS X 10.5標準文本和繪製處理遵從default ignorable屬性,不會渲染異体字,也不支援字形切換。
- Mac OS X 10.6開始自建標準文本的繪製處理可支持字形的轉換,但和Windows 7同標準的字型Hiragino未支援變體選擇符。
- Mac OS X Lion(10.7)則採用了Adobe-Japan1的IVS。
及舊字體]]
- Alpha(文本編輯器) - 2008年2月在IVS-OTFT測試公開版中,通過將變體選擇符的信息轉換為opentype功能標簽的信息,對應於由不同體字選擇符進行的字形切換。
- gdi++
- Emacs 23
- EmEditor v11之後
- FooEditor (文本編輯器)
- gPad(文本編輯器)
- Mery(文本編輯器)
- oedit(文本編輯器)
- Adobe Reader 9、Flash Player 10、Adobe InDesign CS4之後的Adobe軟件
- Mozilla Firefox版本4之後。另外,在版本31以後,改由CJK來實現該功能。
- WebKit可以支持SVG字體,由SVG字體定義的IVS進行字形切換。這與Opera相同。
- Microsoft Office 2007 - 2010版本需要附加Unicode IVS Add-in for Microsoft Office插件,2010之後的默認自帶。
- LibreOffice 4.1之後/Apache OpenOffice 4.0之後
參見
- 變體選擇符 (Unicode區段)
- 組合字符
- 控制字符
- 中日韓統一表意文字
- 中日韓相容表意文字
注释
參考資料
延伸閱讀
*
*
*
*
- 上記3資料を併合して日本語訳したもの。
- ,[https://kufs.repo.nii.ac.jp/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=194&item_no=1&page_id=38&block_id=50 頁面]
外部链接
- [http://www.unicode.org/Public/UNIDATA/StandardizedVariants.txt Standardized Variants - Unicode] (已錄入的SVS一覽)
- [http://www.unicode.org/reports/tr37/ Unicode Technical Standard #37 - Unicode Ideographic Variation Database] (IVD結構和註冊程序)
- [http://www.unicode.org/ivd/index.html Ideographic Variation Database - Unicode] (關於IVD)
- [http://www.unicode.org/ivd/data/2017-12-12/IVD_Sequences.txt IVD Sequences - Unicode] (2017-12-12版) (IVD登記的漢字的組合列表)
- [https://747.github.io/vsselector/ 異体字選擇符] - 搜索SVS・IVS所有可用的變體。
评论 (0)