Skip to content

InSb/Cangjie6-Sharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

蒼頡檢字法《內碼對照表》文本化計劃

緣由

長久以來,坊間流傳的蒼頡檢字法蒼頡六代)碼表,由於整理時間較早,且編寫者最初對蒼頡檢字法的輔助字形與規則等理解不足,導致存在許多錯誤和不自洽之處,與官方碼表牴牾,甚至出現了出於作者喜好而修改常見字編碼的情況。

然而,由於倉頡官方使用的內碼系統不同於現今流行的 Unicode,官方交予坊間的資料僅有一份 PDF 文件一份文本化不完全的 Word 文件。在這份 Word 文件中,僅有部分基本區和少數 A 區漢字得以文本化,其餘漢字則以 &~倉頡碼; 的形式代替,例如:

字符 蒼檢編碼 2003 版五代倉頡編碼
&~IKYAJ; IKYAJ IKYAJ
IL IL

由於文本化的不完全以及其中存在的 Unicode 對應錯誤,這份 Word 中的編碼無法滿足日常使用。因此,蒼頡檢字法用戶不得不繼續使用坊間存在諸多錯訛的碼表,導致許多新用戶被錯誤編碼誤導。

出於改善倉頡輸入法生態、為社區盡一份力的意願,朋友 @Arthurmcarthur 與我(@InSb)共同啟動了蒼頡文本化計劃,將《內碼對照表》PDF 中的內容,在 Word 文件的基礎上逐行輸入至電腦,以期讓基於 Unicode 的計算機也能使用到原汁原味的蒼頡檢字法碼表

特點

① 完全忠實於官方編碼

本碼表完全忠實於官方蒼頡檢字法碼表,不更改《內碼對照表》的編碼,即使其中存在筆誤亦然,完全體現蒼頡檢字法原貌。

② 採用 IDS 表示未收錄漢字

對於尚未收錄於 Unicode 的漢字,我們採用表意文字描述符IDS,Ideograph Description Sequence)表示,例如:&~AABDD; 目前尚未收入 Unicode,暫以「⿱昍冧」代之。

③ 增設「全碼」欄位

除了官方的「蒼頡檢字法官方內碼」與「2003 版五代內碼」以外,我們另增二欄,以方便用戶使用:

1. 蒼頡檢字法全碼

《內碼對照表》中收錄的蒼頡檢字法編碼與 2003 版五代編碼皆為內碼,為保證唯一性,蒼頡檢字法編碼後面可能帶有數字。

  • 碼長小於五時: 數字不會佔去編碼,例如:「已」SU1 (全碼 SU)。
  • 碼長等於五時: 數字可能佔去編碼,例如:「𢻽」MVIY1 (全碼 MVIYE)。

此欄會參考蒼頡檢字法輔助字形和重碼情況,刪去或補足編碼,以提供完整的編碼。

2. 2003 版五代倉頡全碼

由於該項資料已於《漢文庫典》中提供,我們使用 Danny Lin @Danny0838 爬取的《漢文庫典》數據。

④ 碼表排列形式

文本化後的碼表以以下形式排列:

漢字或 IDS 蒼頡檢字法官方內碼 蒼頡檢字法全碼 2003 版五代內碼 2003 版五代全碼

收字情況

經過文本化,若不計入同一Unicode字符不同編碼的情況,則本碼表目前收錄以下區域的漢字,日後若 Unicode 擴增,此處統計可能更新。

Unicode區塊 字數
Unicode CJK基本區 20916
Unicode CJK康熙部首增補 7
Unicode CJK擴展A區 6577
Unicode CJK擴展B區 30542
Unicode CJK擴展C區 183
Unicode CJK擴展D區 6
Unicode CJK擴展E區 214
Unicode CJK擴展F區 332
Unicode CJK擴展G區 140
Unicode CJK擴展H區 104
Unicode CJK擴展I區 20
Unicode CJK擴展J區 126
Unicode CJK相容表意字符 16
Unicode CJK筆劃 4
Unicode未收錄字符 5226
其他字符 78

與坊間蒼頡檢字法的對比

下面不完全列舉本碼表與坊間蒼頡檢字法碼表的不同之處:

漢字 本碼表(官方) 坊間蒼頡檢字法碼表 備注
SU1/SU SYU
MN1/MN MNI 坊間編寫時不知有「癶的左邊」輔助字形
MNLN MNILN 同上
HNMN HNMNI 同上
MNMN MNMNI 同上
HNMZ HNMHZ
HYBT HBYT 未遵循「上下形上方為半封閉形與下分離時視作字首」規則
WMLL AJ 坊間蒼頡檢字法取碼原因不明
LWLM JA 坊間蒼頡檢字法取碼原因不明
JBNI JMTN 坊間編寫時不知有相關輔助字形
OPY OPYTH 坊間「产」部件取碼不統一,此處錯誤地未使用「产」輔助字形
TNLY TNLY 坊間「萨」編碼正確,但與前述「铲」取碼矛盾
OMPNO OPNO 未使用「反字身」規則
OMPOG OPOG 同上
OPTQR OPTGR 不存在的字形
YOK YOK/YONK 坊間蒼頡檢字法編碼時不知有“夜的右下角”輔助字形
HLAI HLUI 誤用不存在的輔助字形
RRMBR RRMOR
𩰲 NZ NNMRB 未使用「Z」部的輔助字形,與「鬻」取碼矛盾
CWA CWFA 「CWFA」編碼僅適用於上部寫「八」的字形
𡆵 WX WLLL 未使用「止」部的輔助字形,因坊間編寫時不知有此輔助字形

發行

本碼表以下列三種方式提供:

①原碼表

可以在本項目中下載原碼表以供研究。

②Rime格式的數字版碼表

Rime格式的數字版碼表,保留原官方的數字編碼與原排序,暫未收入Unicode的漢字以方框“□”佔位,您使用時若要輸入重碼字,需要將數字鍵作為編碼鍵入,這叫一個地地道道地地道道。

按此下載含「文傳字庫GB/BG5符號碼」之Rime格式數字版碼表。

③Rime格式的全碼碼表

Rime格式的碼表,使用我們補全的蒼頡檢字法全碼,去除了未收入Unicode的漢字與編碼,同時重新排序,輸入重碼字時只需選字,更方便使用。

按此下載含「文傳字庫GB/BG5符號碼」之Rime格式全碼碼表。壓縮包內含三種排序版本,可依需求選用。

按此下載含「文傳字庫GB/BG5符號碼」及傳統「ZX??」、「YYY??」符號之Rime格式全碼碼表。壓縮包同樣提供三種排序版本,可自由選擇。

關於符號及排序之詳細說明,請參閱後文「排序」與「符號」兩節。

排序

依「發行」一節所述,本專案提供以下三種碼表排序版本:

• 碼表①:如「特點」一小節所述,在《內碼對照表》基礎上僅新增兩欄,保留原有編碼與排序不變。
• 碼表②:僅提供依原碼表順序排列之版本。
• 碼表③:提供三種排序方式——「一般排序」、「傳統漢字優先排序」與「簡體中文優先排序」。
	當同一編碼出現重碼時:
	- 「傳統漢字優先排序」會將常用的傳承字置於前列;
	- 「簡體中文優先排序」則將常用的簡體字置於前列;
	- 「一般排序」假設使用者同時使用繁、簡體字,藉由評分函數綜合評估字形使用頻率。通常情況下,傳承字權重較高,但若某簡體字的使用頻率極高,亦可能優先於傳承字。

在排序時,使用到了字頻表。繁體中文字頻表來自於香港中文大學人文電算研究中心,簡體中文字頻表來自於Jun Da的網站

符號

蒼檢頡字法開發完成後,由於原「YYY??」符號段已被漢字佔用,官方遂決定將符號移至「ZZ???」區段,並將其命名為「文傳字庫GB/BG5符號碼」。 雖然該符號碼未收錄於《內碼對照表》PDF中,但沈女士曾提及其存在,因此本專案將其內容單獨整理為 zsymbols.txt。 由於「ZZ???」段含有數字,部分輸入法在使用時不便,故另製作去除數字版本,收錄於 zsymbols_without_num.txt。

傳統微軟倉頡所用之「ZX??」符號及原官方「YYY??」符號,則歸入 symbols_legacy.txt。 在〈發行〉一節所述的碼表中:

• 碼表①不含這些符號。
• 碼表②含有 zsymbols.txt 的全部內容;
• 碼表③提供兩種類型:其一包含 zsymbols_without_num.txt 全部內容,其二則在此基礎上再加入 symbols_legacy.txt 的資料。

致謝

感謝 @Arthurmcarthur 為本文本化計劃打下基礎,為倉頡社區犧牲了寶貴的時間。

感謝 @wcshds@yi-bai 先生,為我和 Arthurmcarthur 的文本化工作提供了許多支持,若沒有這些協助,蒼頡檢字法文本化計劃不會以如此高的品質與大家見面。

感謝 @Danny0838 爬取的漢文庫典資料,使得我們可以方便準確地补全2003版五代倉頡的全碼。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages