☆ 2023/10/11 更新,詳情請見 漢字使用環境的建置 —— 部件檢索重要更新暨 Unicode 15.1 全宋體更新。
從去年底開始,我將注意力放在了一部目前已經出版的收字最多的字典——《漢字海》身上。前後花了三個多月的時間,終於將這部字典的字頭清理完畢。《漢字海》第一版
(全三冊),2014 年由香港大正出版公司出版,共收錄 102447
個漢字字頭,超越了《漢語大字典》的 60367、《中華字海》的
86987,成為目前為止收錄漢字最多的字典(《教育部異體字字典》收字
104302,但未實質出版,故不列入比較)。經清查該字典有 12
個字頭重出,而與既有的全宋體 12 萬字庫比對,約有七萬字已收,最後將 32373
個未收字補入字庫,成功將字庫的字量推升到 151917 字,一舉超過了十五萬字大關。新增超過三萬個字符,憑我一人之力要一一造字根本不可能。我採用的方法是將掃描的字頭點陣圖片,利用開源的軟體
Potrace 批量轉成 SVG 向量圖檔,再利用開源軟體 FontForge 撰寫 Python
script,批量將 SVG
圖檔整合為一個字型,縮放成一致大小並調整居中,讓它們排列整齊。這思路是仿效當年紫雪藍海兄處理漢語大字典字頭的做法,不過做法細節上經過了我的改良,與紫兄的做法不盡相同。雖然這些字符的顯示品質會略差,但這卻是目前為止可以快速地讓這些漢字為大家所用的唯一方法。
整個作業中最辛苦的部分就是與既有的 12
萬字庫比對,篩選出未收漢字。這部分雖然有部分自行撰寫的軟體輔助,但幾乎還是需要純人工。感謝
suns99
兄,獨力為數萬字頭一一編製倉頡碼,並剔除已收字。我雖然也同步利用批量部件檢索篩出數千組可能已收字,但若沒有
suns99 兄的火力支援,要完成這些比對的工作,還不知道要多久的時間。由衷地感謝
suns99
兄,每次都是我跳坑他沒有第二句話就跟著跳,得友如此,此生也算不枉了,呵呵!
部件檢索也同步更新,支援全部十五萬漢字的檢字。由於補充字大幅擴增,檢字的響應必然變得比較慢,我尚在研究利用 HTML5 的多線程功能來改善的可能性,現階段只能先請大家多包涵。為此,新增了一個「限標準字」開關,預設勾選,勾選時不比對補充字,讓不使用補充字的情境下可以加速響應速度。需要檢索補充字時,則請記得取消勾選。
此外新增了一個 Filter function,方便需要客製化篩選字符的使用者可以自行撰寫邏輯來過濾不想要的字符。
經過九個月時間的測試使用,我覺得「類聚鍵盤」有其顯著的優點,故今後不再提供「傳統鍵盤」的版本,只專心維護「類聚鍵盤」版本。
雖然這次新增的補充字多數顯示品質略差、拆分數據也還沒完全優化,但先推出來讓大家使用仍有其價值。我初步用這新的字庫去比對一些古籍、字書,發現能將不少以往無法以既有字符對應的漢字重新以新的字符對應,這意味著利用這次的新字庫便能讓這些漢字得以顯示、檢索,有利於相關的數位化、學術研究之用。
我常跟 suns99 兄開玩笑說,我們兩個年過半百的老頭兒,簡直就是現代版的愚公一號跟二號,整天與望不見盡頭的漢字整理任務拚搏。如果您剛好也想不開,想加入愚公的行列,歡迎跟我報名,呵呵!我最終的目標還是希望將《教育部異體字字典》的所有圖片字都清理出來、納進字庫。目前只清理出了 57250 字,進展緩慢。這陣子剛忙完《漢字海》這個大部頭,先喘口氣,收拾一些零碎工作,接下來就要全力對付《教育部異體字字典》了。
感謝文良兄,協助了 CNS 漢字拆分的初步優化。感謝 suns99 兄,不斷地協助字形的糾錯、訂正。感謝瑾昀老弟,提供了很多使用上的反饋。感謝很多直接或間接提供協助的朋友。
樂見學術研究、教育工作、個人閱讀這方面的運用,但請勿用做任何形式的商業營利行為。希望「全宋體」這個字庫以及「部件檢索」這個檢字工具,能在漢字文化的整理、研究上幫上一點小忙。
下載連結:全宋體.zip
勘誤:
、 兩字重複,後者註銷。(2021/03/30)
画、 兩字重複,後者註銷。(2021/03/31)
、 兩字重複,後者註銷。(2021/04/06)
、 兩字重複,後者註銷。(2021/04/13)
、 兩字重複,後者註銷。(2021/04/17)
𬟅、 兩字重複,後者註銷。(2021/04/19)
、 兩字重複,後者註銷。(2021/05/09)
、 兩字重複,後者註銷。(2021/05/10)
𪼟、 兩字重複,後者註銷。(2021/05/10)
居然还有配套仓颉码表,这工作也真是太细致了,感谢!!
回覆刪除不客氣!
刪除除了感謝無法還是感謝!
回覆刪除不客氣!
刪除謝謝你的付出!
回覆刪除請問在技術上是否可以直接將全宋體製作成兩種字體,全宋體(等寬)和全宋體(調和),而不是分割成複數個ttf檔再用reg檔串接,因為串接的方式似乎不能應用在mac上,若是字體一開始就打包在一起,那似乎可以直接解決這個痛點。
您好!正因為技術上無法達成,所以才必須拆成多個 ttf,呵呵!據我的了解,一個 ttf 的字型檔最多只能內含 65535 個字符,這是它的上限,無法超越。應該是當初制定字型標準時就是用一個 16 位元的整數來索引字符,因此除非有更新、更大容量的字形標準出現,否則這個問題無解。
刪除目前官方定義的漢字數目早已超過了 65535 個,若再加上西文字符、各式符號,要全部都塞入一個 ttf 是不可能的。這點從 Windows 作業系統內建的台灣細明體、大陸宋體都是拆成兩個 ttc,便可略窺端倪。
建議您向蘋果官方詢問、反應這個問題,或許他們已經有解決方案只是我們不知道罷了。如果沒有,至少讓他們知道這個問題,期待有一天他們能提出解決方案。
謝謝回覆,希望能找到解決方案。
刪除您好
回覆刪除謝謝您的付出,有一個不情之請,因為沒有您的私人聯絡方式,所以在此處發言,如有不當請見諒,或是直接把我的發文刪除。
因為個人缺乏製作技術,不知道您是否願意發心幫我製作.mdx檔案(佛學辭典),我已經有內容的.txt和.pdf檔案,不知道在剩下的步驟是否會花很多時間?
若是願意,此外MDict官網有提供Windows (1.3 RC4)、Windows (2.0.12)兩種程式,目前我的環境只能運行Windows (1.3 RC4),我發現有一些字典無法在這個版本運行,請問是否可以編輯成Windows (1.3 RC4)可運行的版本?
如果願意和我私人聯絡可以參考下面的email。
ignorantly_speiled@aleeas.com
謝謝!
另外您對中文字典方面研究甚深,如果您願意,這部分也想和您交流請益。
您好:
刪除承蒙您看得起,如果不是太複雜,製作的目的是利益大眾或是有助於學術研究,我是很樂意幫忙。不過 mdx 的製作可大可小,快的幾分鐘就可以搞定,慢的幾天、幾個月都有可能,端看資料內容是否規整、需不需要精細處理等等。
您提到佛學辭典,這部份相對來說比較沒有版權問題,製作的人應該很多,除非很特殊的辭典,否則應該有不少現成的製作可以利用,對岸的論壇裡有位阿彌陀佛兄就製作了大量的佛學辭典,您不妨到 https://forum.freemdict.com/ 找找他的製作,看是否剛好有您需要的。
如果仍然需要我的幫忙,請再次在此留言,我會與您聯繫,了解詳細的情形。
謝謝您的回覆
回覆刪除1. 辭典版權部分,我不是相關法律專業,但是基本上都是20年以上的辭典,並且原作者應該都已經往生,相信應當沒問題。
2. 您的作品在質量上難以匹及,讓我在使用上受益良多。
3. 因為這兩部辭典對我尤其重要,我希望內容務必無誤,我閱讀時常推敲每個文字的內涵,也常使用您製作的字典輔助。您說的現成來源,我猜應該是我目前看到的版本之一,光看成品部分,質量上我不確定如何。我無法將已經製作好的mdx和我手邊比較可靠的內容進行校對。再者,因為有一些不常見字,所以若能另製成以全宋體這類字體的版本會更好。另外,畢竟是對岸內容,擔心有簡體繁體轉換問題,對我而言這樣重要的內容使用軟體自帶的自動轉換還是不太放心。
希望您能協助。
我目前協助開發的編輯器,可以指定顯示 字碼範圍和字型,想問一下 全宋體 各ttf所在的字碼區間為何?
回覆刪除或是可以聊看看或看看這個編輯器
您好!您開發的是什麼樣的編輯器呢?手機、平板上的APP?可以指定「顯示字碼範圍」這個我有點不理解,有什麼作用?
刪除全宋體各 ttf 所佔用的字碼區間如下:
FSung-m or FSung-p:0x0000 - 0xFFFF
FSung-1:0x10000 - 0x1FFFF
FSung-2:0x20000 - 0x2FFFF
FSung-3:0x30000 - 0x3FFFF
FSung-F:0xF0000 - 0xFFFFF
FSung-X:0x100000 - 0x10FFFF(即將推出)
就是 He11/He12 (漢書),程式本身可以設定 顯示字碼範圍和對應字體,也可以顯示彩色 Emoji,這是 PC 用的文書處理
回覆刪除原來是大名鼎鼎的「漢書」啊,呵呵!雖然我沒用過,但是在 DOS 時代我也是用 PE-II 過來的。在 Windows 的環境下,於漢書裏指定全宋體為顯示字型,應該也能正確使用吧!
刪除其實 Windows 對於一些字的抓取常常有問題,比如說 0x2F800 的 Unicode 文字,你設定細明體有時候會顯示不出來,所以我在漢書就用 自訂區間和字型對應(當然內部也有自動搜尋有哪些字),去對應進而顯示,所以目前 漢書,可以完整顯示所有 Unicode 文字,包含 彩色 Emoji
刪除編輯器我倒是沒遇過類似問題,通常指定了正確字型就可以顯示。有類似問題的反倒是瀏覽器,目前發現以 WebKit 為核心的瀏覽器對於兼容區的字似乎會不理會 css 指定的字型,而固定以系統的預設字形顯示,包含 Chrome、Edge 都是如此。IE、Firefox 則無此問題。
刪除目前對應後顯示效果不錯,顯示圖 https://mega.nz/file/CE9GDBpD#N0hdw84Zjr6c5wygWNxlkhsgW6XZ03bSX6uqmpeFPeU
回覆刪除嗯,看起來很不錯。因應 Unicode 14.0,我增補了一些符號。另外就是針對《教育部異體字字典》的字頭做了清理,大約又增補了一萬八千多個漢字,目前漢字總數超過了十七萬,還在做最後整理,希望能儘快將成果發布出來讓大家使用。
刪除目前我幫修正的 漢書12 版本可以完整正確顯示所有字出來,如果你要使用看看,可以跟我 Line 聯絡一下,
回覆刪除就是 .txt 文字檔案可以直接顯示(都可以放大縮小),不需要用到 .doc,然後,載入都是秒載入
如果有機會的話倒是可以試用看看漢書,不過真是抱歉,我沒使用 Line,呵呵!平常的編輯需求裡,使用正則的機會很大,不知漢書有無提供正則表示式的功能?
刪除有的,包含搜尋置換,和色彩顯示等,都有提供正則,那如何聯絡,有 FB 或是 Skype ?
刪除感謝!我是個手機的低度使用者,所以這些社群軟體幾乎都沒使用,呵呵!Blogger 沒有悄悄話的功能,不過您可以留言後立刻刪除,我還是會收到完整留言的通知信,留個 e-mail 給我,我便可以私下跟您聯繫。
刪除qots 𱟲
回覆刪除qotn 𱟳
「𱟳」「𱟲」編碼應該一樣。
感謝指正。
刪除感謝您維護編碼。
刪除lhyiu 𱍮
回覆刪除llyiu 𱍮
lhbmr 𱍯
llbmr 𱍯
lhmtc 𱍰
llmtc 𱍰
lhbtu 𱍱
llbtu 𱍱
lhhab 𱍲
llhab 𱍲
lhtgv 𱍴
lltgv 𱍴
lhtxc 𱍵
lltxc 𱍵
lhipf 𱍶
llipf 𱍶
lhvc 𲂫
llvc 𲂫
類似情況還有「𲃀」「𲎕」
以上左邊字頭相同,右邊或三碼,或二碼,應保持一致。
據漢文庫典「帰」字,ll開頭是右邊是二碼,大約是把第一豎視作左邊組件。lh開頭右邊是三碼,大約是把「𬼀」視作左邊組件。無論ll開頭右邊取二碼還是三碼,我覺得都可以,唯盼碼表能保持一致,一以貫之,感謝。
作者已經移除這則留言。
刪除最好是4碼、5碼都加上
刪除類似這些情況
不是短時間可以完成
只能靠自己不斷去完善
阿9 鮮少上這裏
今天是W兄通知才來看
碼表第88379行:「𬟏 𬟏 txu」,似乎格式有誤,應該是「txu 𬟏」?
回覆刪除發現了一系列疑問編碼:
回覆刪除gibk 𱘀 gybk?
hkkiu 𬓦 hdyiu?
yiil 𠗷 還需要 imiil?
yitc 𠘛 還需要 imitc?
yhfk 𠘜 還需要 imhfk?
ojru 𠉗 ohru?
dsji 𬄫 dsja?
fb 𫰒 vb?
nbmwk 𧣲 nbmlk? (「更」爲mlwk)
ianw 𬐁 kanw?
tjste 𫖋 tjsce? (「殿」爲schne)
ufirm 𠒬 fuirm?
ekmj 𣴰 還需要 ekq?(ekmj對應的是Unicode 5.2 T源字形,6.0字形有改動)
以上疑問還請指教。
== 右邊組件相同取碼不一致 ==
𤊪 fllc
𠶁 rllc
與
𠁵 llmc
𱞟 plmc
𱞟 plqc
𱠎 qlmc
𱠎 qlqc
𫥪 yulmc
如果 lqc 和 lmc 都可以,那麼需要將兩種碼都應用到這些字。前面兩例 llc 又是另一種拆法。無論拆成llc還是lqc還是lmc我都沒有強烈意見。只希望碼表能保持一致,保證至少有一種拆法可以應用到所有字。再次感謝。
txu 𬟏
回覆刪除gybk 𱘀
gkbk 𱘀
hdkiu 𬓦
hdyiu 𬓦
imiil 𠗷
yiil 𠗷
imitc 𠘛
yitc 𠘛
imhfk 𠘜
yhfk 𠘜
ohru 𠉗
dsja 𬄫
dsji 𬄫
vb 𫰒
nbmlk 𧣲
kanw 𬐁
tjsce 𫖋
fuirm 𠒬
ekq 𣴰
感謝,已經更新到我本地的rime方案。
刪除另外煩請您過目上面對「𬼀」部件的討論。
刪除lhvc 𲂫
llvc 𲂫
與
𲃀𲎕,這幾個字ll之後取兩位,右邊組件都是兩位取不盡的構形。但是別的同組件字是取三位。此處不一致不知道該用哪一種?
這些字不是在同一個時間編碼
刪除所以編碼當下只依當時的直覺編
未全盤考量
日後巧遇了才有可能統一
B區之前的編碼是前人所賜
回覆刪除阿9 没通盤檢視過
C區之後的錯碼是阿9 之過
我無一絲一毫責備之意,只求碼表穩定可靠。感謝兩位先生盡心盡責維護字型和碼表。我先前有因爲其他人維護的碼表錯誤而誤認未編碼字,所以寫了個程式用BabelStone上的IDS與倉頡碼對勘,以上只是程式報告出來的15%問題,後續我會篩選後(程式也有許多不完善之處)繼續彙報。
刪除不用「繼續彙報」
刪除阿9 怕没空理
不怕不怕,我並無迫切的修復需求,兩位什麼時候修復都可以。有問題只是發到這裏備忘,不要就這樣算了就好。
回覆刪除hmb 𦚑
imb 𦚑
還需要 ismb 對應 6.0+ G字形
mwbne 𨣥 mwbbe?
iedm 𬡩 ledm?
jrsh 𮝞 jjrsh?
jrsm 𮝞 jjrsm?
sbmr 𫧒 sbr? (sbmr 是8.0字形,9.0有修正)
men 𪜘 mende? (左右結構字)
imis 𫢙 omis?
pysl 𰒈 pydl?
ipyk 𪪐 ypyk? (ipyk 是6.0字形,6.1有修正,換成了虍)
chml 𨨎 coml (「邱」是omnl)
dhml 𣔆 doml
qhml 𢮼 qoml
jod 𫹎 hod?
ooog 𮉴 ouoog?
mgool 𬍦 還需要 mgooi (ooi是碼表字形, ool應該是花園明朝形)
mrno 𮀌 還需要 mrvo (vo是碼表字形乆,no是通用的久)
nmfu 𫸱 還需要 nifu (nifu是碼表字形,nmfu應該是花園明朝形)
hisn 𦜛 bisn?
ronn 𪠿 rh? (onn對應的字形就是V的「竹」字)
bueot 𥋕 還需要 buiot (iot對應是14以上,5.2-6.0的形,eot對應其他版本Unicode形狀,有夠混亂,兩個都收好了)
bcjka 𫎟 bcjpa? (耆是 jpa)
rlrg 𫪄 rleg?
jisli 𩲂 hisli
回覆刪除jisy 𩲂 hisy
pdhj 𠉟 odhj
hqrrr 𭯞 hurrr
lrmg 𤶲 krmg
lshj 𬡳 還需要 lsmj (碼表字形, lshj應該是花園明朝形)
tqmpo 𦎜 tqmso
ikmr 𭚈 ikma (「奭」爲kmaa)
sfhag 𩥧 sfhug (騜𩥧不同)
afahm 𩤵 sfahm
sbun 𮋴 sjbun
tqgrt 𦏔 tqgrr
yeji 𬩅 yeja
gcjiu 𬦄 gcjau (jiu可能指的是⿰者見?這個也是花園明朝形,V的形右邊是沒有丶的覩)
qp 𰒹 qps
lip 𮓲 lips
aymu 𭨈 aybu
hrqi 𡀤 還需要 rhqi(11.0新字形)
mnjoe 𨺶 nljoe (不知道mn怎麼來的😄)
anhs 𨴃 anos
pslg 𪬮 psrg
emda 𤃝 還需要 emha (emda是全字庫的拆法,也不差。但是別的𱵃 mrmha,𱡌 qmha,𦏩 tqmha 都沒有支援 mda)
qolk 𪮈 qojk
qjoy 𢰯 qkly (栆是kly)
cyrn 𨯤 cynv
hakoo 𮩩 hadoo
gkjmm 𪯆 jejmm (十二支)
lubf 𫌌 lujf
hfohs 𱈨 hfihs
mwiq 𬪨 還需要 mwij (碼表字形從戋,mwiq應該是花園明朝形,從㦮)
gywg 𤎆 fywg
hmln 𠜄 htln (卹 htsl)
buonp 𬑛 buoip (捻 qoip)
感謝您費心抓錯,或許沒辦法很及時地訂正,但記錄在這裏,將來得空總是有機會修正。
刪除不客氣,反正對照字形的苦力活都是程式在做,我只是做點篩選驗證工作而已。
刪除buhaj 𭿟 buhuj
回覆刪除nlygj 𱀷 nlygq
tmixi 𨄭 rmixi
wrse 𪽜 還需要 whje (6.1更改字形)
nbhs 𧣝 nbos
gonai 𮚻 gonau
mgjpu 𭺋 mgjpi
beji 𬛒 還需要 beja (碼表字形從者,beji應該是花園明朝形,從者)
domp 𱤵 dorp (㘛 rorp,漢文庫典)
vfwii 𦂮 還需要 vfwki (兩種取碼其他字都有)
bcgoo 𬥗 bcoog (挫 qoog)
haog 𪽽 haom (丘 om)
duiu 𰗟 duku
fmdm 𫰌 vmdm
ubob 𪨹 urob
nbapp 𧣤 nbap
yrhag 𧫍 yrhug
bwp 𥌷 還需要 bujqp (bwp是6.0-13.0字形, bujqp ⿰目憲 是現在的字形)
ofuf 𰂆 ogug
ebch 𣽷 eboh
hatqy 𩡚 hatqt
𩡚 還需要 hatgt (tqt 是 5.1-5.2 字形, tgt 是6.0+字形)
sjnem 𦕣 sjnkm/sjnkv (延nkhym/nkhyv)
meime 𥒜 mrime
yli 𨒷 ylmi (如果要匹配日本的辶用 iylmi也可以,但是個人覺得沒有必要,不然要把所有J的辶字全部做一個兼容,工作量太大)
dmbib 𪲔 dmbb
rqi 𰇊 rqni
dqvi 𣏢 (可能需要刪掉,我們只有专qni, 沒有 qvi)
biko 𬛇 bilo
回覆刪除kiyub 𮔮 liyub
tqtvi 𦍫 tqyvi
govp 𪤣 gomp (右邊組件是K的愈,取碼跟T的一樣)
hponp 𫗃 hpomp
hqonp 𫗃 hqomp
huonp 𫗃 huomp
hvonp 𫗃 hvomp
hponp 𫗄 hpomp
hqonp 𫗄 hqomp
huonp 𫗄 huomp
hvonp 𫗄 hvomp
olonp 𪬪 olomp
hdyol 𬓰 hdyok
lihqm 𧌯 lihjm
pedw 𢟞 pimw (看起來像是氵,實際上是忄+冫)
ypuh 𬩃 yyuh
nlhuu 𨽊 nlnuu
ltta 𫌑 ltca
ssphh 𫇅 slphh (頣 slmbc)
kmnk 𪽨 還需要 kmni (mnk是5.2 - 10.0字形,mni是11.0+字形)
nflbt 𫙬 nflkt?
回覆刪除nesmm 𢌟 nksmm
ouvme 𬙐 ouvne
hfopv 𬷸 hfoiv
ybopv 𬛠 yboiv
humuu 𩳯 himuu
wdnau 𬚐 qdnau
lli 𧙽 llmi