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

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

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



 找回密碼
 注册
查看: 577|回復: 18

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

[複製鏈接]
發表於 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的計算機可以處理的文本,而不會對字數進行增減。

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

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

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

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

發表於 7 天前 | 顯示全部樓層
馬拉一個錘子 發表於 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

 樓主| 發表於 7 天前 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 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日)倉頡只有三代和五代可選。



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

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

2025-11-10_140918.png


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

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

所以「儿」「兀」也都用「C」
 樓主| 發表於 7 天前 | 顯示全部樓層
本帖最後由 馬拉一個錘子 於 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, 17-11-2025 05:58 PM , Processed in 0.035061 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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






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