倉頡之友
康熙与倉頡
主頁 自學 倉頡字典 康熙字典體

倉頡平台2022 網上輸入法 九萬漢字

論壇 聯絡 康熙字典網上版 捐助本站
 蒼頡檢字法《內碼對照表》文本化計劃 - 倉頡論壇 - 康熙字典与倉頡之友 - Powered by Discuz!


 找回密碼
 注册
查看: 6425|回復: 25

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

 火 [複製鏈接]
發表於 2-11-2025 18:45:39 | 顯示全部樓層 |閱讀模式
長久以來,坊間流傳的蒼頡檢字法(蒼頡六代)碼表,由於整理時間較早,且編寫者最初對蒼頡檢字法的輔助字形與規則等理解不足,導致存在許多錯誤和不自洽之處,與官方碼表牴牾,甚至出現了出於作者喜好而修改常見字編碼的情況。
然而,由於倉頡官方使用的內碼系統不同於現今流行的 Unicode,官方交予坊間的資料僅有一份 PDF 文件和一份文本化不完全的 Word 文件。在這份 Word 文件中,僅有部分基本區和少數 A 區漢字得以文本化,其餘漢字則以 &~倉頡碼;的形式代替,例如:
字符
蒼檢編碼
2003 版五代倉頡編碼
&~IKYAJ;
IKYAJ
IKYAJ
㐃
IL
IL
由於文本化的不完全以及其中存在的 Unicode 對應錯誤,這份 Word 中的編碼無法滿足日常使用。因此,蒼頡檢字法用戶不得不繼續使用坊間存在諸多錯訛的碼表,導致許多新用戶被錯誤編碼誤導。
出於改善倉頡輸入法生態、為社區盡一份力的意願,我與 @InSb 共同啟動了蒼頡文本化計劃,將《內碼對照表》PDF 中的內容,在 Word 文件的基礎上逐行輸入至電腦,以期讓基於 Unicode 的計算機也能使用到原汁原味的蒼頡檢字法碼表。

 樓主| 發表於 2-11-2025 18:48:07 | 顯示全部樓層
特點

① 完全忠實於官方編碼

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

② 採用 IDS 表示未收錄漢字

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

③ 增設「全碼」欄位

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

1. 蒼頡檢字法全碼

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

碼長小於五時: 數字不會佔去編碼,例如:「已」SU1 (全碼 SU)。
碼長等於五時: 數字可能佔去編碼,例如:「𢻽」MVIY1 (全碼 MVIYE)。
此欄會參考蒼頡檢字法輔助字形和重碼情況,刪去或補足編碼,以提供完整的編碼。

2. 2003 版五代倉頡全碼

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

④ 碼表排列形式

文本化後的碼表以以下形式排列:
漢字或 IDS蒼頡檢字法官方內碼蒼頡檢字法全碼2003 版五代內碼2003 版五代全碼

 樓主| 發表於 2-11-2025 18:49:12 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 2-11-2025 07:06 PM 編輯

經過文本化,若不計入同一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




 樓主| 發表於 2-11-2025 18:50:52 | 顯示全部樓層
下面不完全列舉本碼表與坊間蒼頡檢字法碼表的不同之處:
漢字
本碼表(官方)
坊間蒼頡檢字法碼表
備注
已
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
未使用「止」部的輔助字形,因坊間編寫時不知有此輔助字形


 樓主| 發表於 2-11-2025 18:51:53 | 顯示全部樓層
下載本碼表,及瞭解更多,請到GitHub專案頁
 樓主| 發表於 2-11-2025 19:10:41 | 顯示全部樓層
感謝 @wcshds、@yi-bai 先生,為我和 @Insb 的文本化工作提供了許多支持,若沒有這些協助,蒼頡檢字法文本化計劃不會以如此高的品質與大家見面。

感謝 @Danny0838 爬取的漢文庫典資料,使得我們可以方便準確地补全2003版五代倉頡的全碼。
發表於 2-11-2025 20:28:00 | 顯示全部樓層
感謝大家的幫助!

專案現歸於我名下,如有疑問可於專案留言,或在本帖回覆。
發表於 5-11-2025 16:40:38 | 顯示全部樓層
请问一下为什么相比较“坊间码表”,少了那么多字?
这个:https://github.com/rime-aca/rime-cangjie6
10万左右 VS. 7万左右
發表於 5-11-2025 16:46:02 | 顯示全部樓層
qkj70 發表於 5-11-2025 04:40 PM
请问一下为什么相比较“坊间码表”,少了那么多字?
这个:https://github.com/rime-aca/rime-cangjie6
10 ...

大概還没更新到擴展J區的字

2025-11-05_164536.png
 樓主| 發表於 5-11-2025 17:21:37 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 5-11-2025 05:23 PM 編輯
qkj70 發表於 5-11-2025 04:40 PM
请问一下为什么相比较“坊间码表”,少了那么多字?
这个:https://github.com/rime-aca/rime-cangjie6
10 ...

上文已提及,倉頡輸入法官方自有一套字符集與內碼體系,與Unicode並不相同。內碼對照表中僅收錄官方字符集所包含的字。從數量上看,Unicode經過多次擴充,其收錄的字符數量已遠超官方內碼表。

Unicode所收錄的字未必存在於官方字符集中;反之,官方字符集內的部分字,也不一定包含於Unicode。本計劃即是將官方收錄的字精確映射至Unicode,將蒼檢的官方碼表變成基於Unicode的計算機可以處理的文本,而不會對字數進行增減。

坊間流傳的蒼檢碼表雖字數眾多,卻多有粗製濫造、內容矛盾之處。本碼表雖收錄字數較少,但品質更為可靠,與蒼檢的實際規則更加相符。
發表於 10-11-2025 08:41:15 | 顯示全部樓層
本帖最後由 山水晏 於 10-11-2025 08:43 AM 編輯
馬拉一個錘子 發表於 5-11-2025 05:21 PM
坊間流傳的蒼檢碼表雖字數眾多,卻多有粗製濫造 ...

「敲得出字」不是選擇輸入法的首要考量嗎?
 樓主| 發表於 10-11-2025 10:45:45 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 10-11-2025 12:15 PM 編輯
山水晏 發表於 10-11-2025 08:41 AM
「敲得出字」不是選擇輸入法的首要考量嗎?

凡事總有過程,是先改善質量,弄清規則,再考慮擴增,而非反過來,我相信本碼表是日後擴增的良好基礎,它已經包含了常用字,和大量的罕用字,不包括Unicode尚沒有的字,實際收字也有五萬九千多字呢。

如果碼表存在大量衝突矛盾的編碼,同樣不能打出字。就像「萨」在坊間編碼「TNLY」,利用了「产」輔助字形,而「铲」卻編碼「OPYTH」,沒有使用「产」輔助字形。「奡」編碼「MUKLL」,「𬛬」却又編碼「HUKL」。「啻」編碼「YBLBR」,而「𬃨」卻編碼「YBLD」。這種錯誤衝突的編碼會讓使用者無所適從,即使碼表有收字,無法通過正常的規則和輔助字形知道該字在該碼表中的真正編碼,也無法打出字。
補全字集屬於另一項獨立的工作,而本專案的目標就是將《內碼對照表》文本化,還原原貌,這樣才能方便研究規則、為擴增打好基礎。我們十分認同大家補全字集的建議,我們的任務尚未完成,我們會繼續努力。

發表於 10-11-2025 13:54:50 | 顯示全部樓層
馬拉一個錘子 發表於 10-11-2025 10:45 AM
凡事總有過程,是先改善質量,弄清規則,再考慮擴增,而非反過來,我相信本碼表是日後擴增的良好基礎,它 ...

像Unicode這種一碼多形的字
倉頡碼如何處理

2025-11-10_092052.png 2025-11-10_091403.png 2025-11-10_091037.png 2025-11-10_090727.png

 樓主| 發表於 10-11-2025 14:02:23 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 10-11-2025 02:11 PM 編輯
山水晏 發表於 10-11-2025 01:54 PM
像Unicode這種一碼多形的字
倉頡碼如何處理

官方在《內碼對照表》中已處理了異體字的問題。在倉頡系統中,這些字都是不同的字,擁有不同的內碼,然而,Unicode中這些有細微差別的異體字都被「統合」到同一個碼位上,所以在文本化的過程中,就是將不同的倉頡碼對應到同一個Unicode碼位上,以兼容異體寫法。例:
沿  EHNR
沿  ECR

勺 PI
勺 PM

黄 TLWC
黄 TWC

虎 YPHU
虎 YPHN

另再提一句,目前,倉頡三代和五代在規則和碼表上都已很完善,都已有編到擴展J區、質量較高的碼表,閣下所言及的字形問題也有妥善處理。本計劃主要針對的是蒼頡檢字法(蒼頡六代)。若需要擁有全部Unicode CJK表意文字的碼表,目前(2025年11月10日)倉頡只有三代和五代可選。



發表於 10-11-2025 14:13:10 | 顯示全部樓層
馬拉一個錘子 發表於 10-11-2025 02:02 PM
官方在《內碼對照表》中已處理了異體字的問題。在倉頡系統中,這些字都是不同的字,擁有不同的內碼,然而 ...

這個臺灣字形
我不會敲「EHNR」

2025-11-10_140918.png


 樓主| 發表於 10-11-2025 14:22:45 | 顯示全部樓層
山水晏 發表於 10-11-2025 02:13 PM
這個臺灣字形
我不會敲「EHNR」

正是,因此上方已有提及「沿」也有「ECR」編碼。
發表於 10-11-2025 14:26:22 | 顯示全部樓層
馬拉一個錘子 發表於 10-11-2025 02:22 PM
正是,因此上方已有提及「沿」也有「ECR」編碼。

所以「儿」「兀」也都用「C」
 樓主| 發表於 10-11-2025 14:41:55 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 10-11-2025 02:43 PM 編輯
山水晏 發表於 10-11-2025 02:26 PM
所以「儿」「兀」也都用「C」

並非如此。倉頡三代、五代,乃至蒼頡檢字法,都是嚴格區分「ㄦ」和「儿」的。
請見倉頡五代手冊中的規則說明。

因此「兒」在三代和五代取碼「HXHU」、在蒼檢中取碼「XHU」,不可取「HXC」或「XC」。
「儿」在三代和五代中取碼「LU」,在蒼檢中取碼「LU」和「HU」,不可單取「C」。「兀」在三代、五代和蒼檢中都取碼「MU」,即丆乚,不可取「MC」(一ㄦ)。

只有像「沿」右上方的部件可以取碼「C」,取碼「ECR」,再例如「陸」、「西」中的「ㄦ」可以取碼「C」。



IMG_9716.jpg
您需要登錄後才可以回帖 登錄 | 注册

本版積分規則

Archiver|手機版|小黑屋|康熙字典与倉頡之友

GMT+8, 29-9-2026 07:12 PM , Processed in 0.022953 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表






倉頡之友 .自學倉頡輸入法    1997 - 2026   
馬來西亞    https://www.chinesecj.com
《姐妹站》:康熙字典網上版