2025年9月12日 星期五

漢字使用環境的建置——Unicode 17 全宋體更新

擴展 J 區

9月9日,Unicode 官方一如預告,發布了最新的 Unicode 17.0 版。前次的 Unicode 16 並未新增任何漢字,而此次則添加了擴展 J 區(另 C 區 6 字、E 區 12 字)等共 4316 個漢字。基於以往的經驗,八月初我就開始偷跑,投入了新增漢字的整理工作。七月底 jcz777 兄分享了自製的 J 區字型時,我便央請他協助建立新字的拆分資料。8月3日 J 兄完成初步拆分,於是我從 Unicode 文件中抽取數據,8月4日完成了 4316 個基於官方字形的新字製作,藉著新字型我開始逐字驗證 J 兄建立的拆分數據。8月12日拆分複驗完畢,做了不少訂正與補充,期間也反饋給 J 兄一些造字的錯誤,至此準備的工作完成了大半。

遷碼對照表

初步完成了字型以及「部件檢索」,有了顯示及檢字的工具,我與 suns99 兄就雙雙投入了補充字對 J 區字的遷碼整理,看哪些補充字已經被收入 J 區之中。這是最花時間的工作,所以我不得不提前偷跑,希望在最短的時間內能跟上官方的發布。suns99 兄的動作遠比我快,8月8日即用倉頡輸入法完成了一份對照表草稿,而我在複驗完拆分數據後,緊接著用批量「部件檢索」加上人工排查,針對兩份草稿逐一比對、修訂,期間還不時需回頭查核、調整字形。經過幾輪逐字、甚至幾乎是逐筆畫的仔細比對,終於在八月底完成了正式的遷碼對照表。J 區的 4298 字之中,有 1862 字是補充區已收錄字,加上 C 區 5 字、E 區 6 字也是已收錄,實際上只有 2443 字算是新增。

有了遷碼對照表,我就能以批量的方式,將我製作的數百部辭典,進行遷碼的工作。把用到這些補充字的相關文件,全部轉碼改用正式的 J 區字,然後這 1870 個補充字就可以功成身退了。


您若曾利用「全宋體」的補充漢字來製作文件,可借助這個遷碼對照表,將相關的文件快速遷碼至 J 區用字。更新字型之前請務必確認您所有的文件都已遷碼完成,以避免顯示錯亂的情形發生。

p.s. 遷碼對照表中額外包含了 9 個 C 區、E 區字的遷碼對應。另外,這次 Unicode 改動了「峀」、「𣍟」的台灣字形定義,建議台灣地區的朋友將遷碼表中的前三筆也加入轉碼;大陸地區的朋友則可將前三筆移除。

J 區優化

我逐字、甚至幾乎是逐筆畫的仔細比對遷碼對照表,除了追求完全零失誤之外,另一個重要目的就是要把與 J 區重複的補充字字形抽取出來,擇其優者取代掉質量較差的 J 區字形。遇有某些太不順眼的越南提交字形,還要自行重新造字替換。至此 J 區的字型與拆分資料才算是大致完成,時間已來到九月初。

康熙字典補完

除了擴展 J 區之外,事實上這一版的「全宋體」還增收了一些新字。原先《康熙字典》的釋文裏尚有大量未編碼字只能以圖片字或構字式呈現,長期以來我與 suns99 兄一直致力於消滅這些未編碼字,這次又得 jcz777 兄相助造字,我則努力查證、分辨訛誤,耗時數月,終於將全部的未編碼字清理完畢。加上了兩百餘條校注,新造了近百個字形。除少數當予訂正的訛字未予收錄外,現在「全宋體」已能完全涵蓋《康熙字典》全文,不再有缺字問題(先讓我喘口氣,《康熙字典》容我擇日再另行發布)。

至於拆分資料的部分,仍是我的痛處,尚有海量的拆分資料等著我去進一步完善。只能且戰且走,先將這個尚未完全優化的版本推出,讓大家先有個工具可用,至於進一步臻至完善,只好徐徐後圖了。



Windows 11 字型安裝說明

我的電腦較舊,不符合 Windows 11 的最低要求,所以一直以來都停留在 Windows 7 的作業系統,只要參照 漢字使用環境的建置 ㈠ —— 顯示篇 的說明安裝字型,基本上都沒問題。期間有些朋友向我反應 Windows 11 下安裝會有些問題,我也借了一部 Windows 11 的電腦重現了問題,但苦無解方。後來,隨著各方都逐漸停止支援,終於不得不換到了 Windows 11 的環境下,也不得不開始正視這個問題。

經過了一段時間的實際使用及測試,我終於釐清了問題,試著在這邊略作說明。

將「全宋體」的七個字型檔按正常方式安裝並雙擊「SurrogateFallback.reg」進行機碼設定後,再雙擊「漢字簡易測試.txt」,應該會看到這情形:
坑坑巴巴的滿是「豆腐塊」,讓人誤以為是安裝有問題,沒辦法正確顯示全部漢字。其實這是 Windows 11 的「記事本」問題,加入了什麼 AI 等一大堆功能,但卻不再遵循 SurrogateFallback 的設定來取用字型,導致大家誤會字型沒安裝成功。

既然是 Windows 11 的「記事本」問題,於是我想「如果我從沒問題的 Windows 7 裏借『記事本』來用總可以了吧!」沒想到 Windows 11 會「頑強抵抗」「全面封鎖」,不管是 Windows 7、Windows 10,不管是 32 位元還是 64 位元版本的「記事本」,只要一在 Windows 11 下執行,全部被攔截轉而變成執行 Windows 11 本身的「記事本」,讓你不得「越雷池一步」。

我不死心,最後從 Windows XP 裏請出了「記事本」軟體,結果 Windows 11 大概沒想到有人會有這一招,居然可以執行了。
全部的「豆腐塊」都不見了,證明了其實字型的安裝是成功的,純粹只是 Windows 11 的「記事本」在作怪。但請注意截圖中的紅框處,I 區的漢字居然沒顯示,這應該就真的是 Windows 11 的 BUG 了,目前為止我無解方。所以要想在 Windows 11 下同時顯示全部漢字,必須還是要靠軟體自行支援字型的遞補顯示,例如 EmEditor 有此功能,否則 I 區的字形還是無法正確顯示。

附記

這次的 Unicode 17 有幾個收字需要說明一下:

U+5CC0 原先的定義是:
Unicode 17 改成了:
另在 C 區新增了一字:
U+2B73A 此字 T 源的標示是「T4-2634」,表示是據 CNS-11643 收字,此形原先是位於 U+5CC0 的碼位之下,此次將其與 U+5CC0 脫鉤,移至 U+2B73A,而 U+5CC0 的 T 源位置則換上「TF-2662」,此形原位於 U+2F879。簡言之,原先的台標 U+5CC0「⿱山田」字形改移至 U+2B73A,而原先的 U+2F879「⿱山由」字形改移至 U+5CC0,由兼容字扶正。這一改動對陸標而言,U+5CC0「⿱山由」字形維持不變,而原先缺乏的《康熙字典》「⿱山田」字形則新增於 U+2B73A。但對台標而言,影響甚大,所有的 U+5CC0「⿱山田」字形必須遷碼才能符合 Unicode 規範,影響的既有文件數量恐怕很大,很多的網站、資料庫可能都無力修正。

另一字 U+2F980 的定義是:
原先「全宋體」借作了形,這次 Unicode 17 在 C 區新增了一字:
即為此形,所以將其遷至 U+2B73E 並還 U+2F980 其原形。

對台標字形而言,這次 Unicode 17 還改動了「𪺘𫟂𭓱玥𣍟𦰶𣋰𣫲𥟌𧞰𩆬卑𠙴凵」等字的字形,各位可以稍加留意。但其中的 U+2F82D 原先的定義是:
Unicode 17 改成:
這字形與 F 區的 U+2D161 相衝:
另外 U+20674 新增了 T 形的定義:
而 U+2F81D 卻改成了一樣的字形:
我懷疑這幾處是 Unicode 的出版單位,在排版輸出時抓取的字形有問題,因此「全宋體」暫時依舊版而不改動,等問題釐清之後再做定奪。這些問題已經向 IRG 的朋友反應,不過據以往提供反饋的經驗,Unicode 官方並不會立刻做出修正,直到下次發布時才會更正。

字型更新

經過這些冗長繁複的整理,這次更新給大家的「全宋體」,除了基本字區、A 區、B 區、C 區(新增 6 字)、D 區、E 區(新增 12 字)、F 區、G 區、H 區、I 區、J 區(4298 字)的已編碼漢字共 102376 個外,再加上 100288 個 Unicode 尚未編碼的補充漢字,總計共有 202664 個漢字,正式突破了二十萬字。除了涵蓋 Unicode 17.0 的所有漢字之外,更涵蓋了四大字典的所有字頭與台灣 CNS 標準的編碼漢字以及漢字構形資料庫、《康熙字典》全文的所有漢字,足堪專業領域之使用。

下載連結:全宋體.zip
下載連結:倉頡碼表.7z (僅保留漢字部分,請自行併入您慣用的碼表)

鳴謝

感謝這些原字型製作單位的無私奉獻。
感謝老友 suns99 兄,總是不離不棄地與我並肩作戰。
感謝好友 jcz777 兄,協助部分字形造字與拆分數據的建立。
感謝新朋友 Xi Zhu 兄,提供部分避諱字資訊供我增補造字。


現將此成果無條件分享出來,樂見學術研究、教育工作、個人閱讀這方面的運用,但請勿用做任何形式的商業營利行為。希望「全宋體」這個大型字庫以及「部件檢索」這個檢字工具,能在漢字文化的整理、研究上幫上一點小忙。




勘誤:




沒有留言:

張貼留言