台湾的文档有些字无法改字体怎么办?
的有关信息介绍如下:
在Unicode中,有一個叫 CJK Compatibility Ideographs (CJK兼容表意文字,本文簡稱「兼容區」)的區域。這一區域收的字實際上普通區(CJK Unified Ideographs,CJK統一表意文字,本文簡稱「普通區」)大多數都有,但因為各國自己編碼標準中存在部分異體字、多音字分開收錄的情況,Unicode為了與其雙向映射,弄出了這麼一個區,導致了同字異碼的現狀。
比如韓文中「女」由於頭音法則,存在nyeo和yeo兩種讀音,韓國獨自的編碼收了兩個「女」字。在映射至Unicode時,由於普通區只有一個「女」字,就把標準讀音nyeo的「女」字與其映射,丟掉頭音的yeo「女」,則放進兼容區。
字形完全一樣的兩個「女」字,實際上是不同的編碼。
簡繁日韓的漢字字體,都可以顯示普通區的「女」字。但兼容區的「女」字,韓國以外的字體沒有收錄的必要,因此有的字體收了,有的沒收。沒收的情況,就會fallback或者顯示不出來。
韓國之所以將多音字每個音弄一個編碼,應該是為了可以在漢字和Hangul之間雙向轉換。
兼容區也有一部分來自與日本獨自編碼的映射,一部分是舊字形導致,一部分可能是當時Unicode未收錄的國字。
比如,日本獨自的編碼中可能「神」和「神」是分開收錄的,到了Unicode中,新舊字形的「神」只有一個位置,所以將舊字形的「神」放進了兼容區。
神(U+795E,普通區)
神(U+FA19,兼容區)
同樣,兼容區的字符因為不是所有簡繁日韓字體都收錄,所以沒有收錄的字體,會fallback或者顯示不了。
雖然台灣CNS11643標準也有因新舊字形問題讓Unicode重新收錄,但這些字收錄在BMP外的CJK兼容表意文字擴展區,不在本答案討論範圍。非擴展的兼容區因與BIG5映射產生的同字形多編碼的字只有兩個不常用的字,不影響題主的文檔。
CJK Compatibility Ideographs 位於U+F900至U+FAD9,因韓國問題導致的同形異碼字位於U+F900至U+FA0B。題主出現的那些字都是這個範圍的,覆蓋這個區域的字體可以顯示,反之則會fallback或者顯示不了。
思源明朝OK
游明朝NG
理論上台灣的文檔沒必要且不應該使用兼容區的那幾個字,題主文檔應屬於錄入時誤使用兼容區的情況。
想更換字體顯示兼容區的字,可以使用BabelPad的字體分析功能,選擇「列出包括這個編碼區的字形」,並選擇CJK Compatibility Ideographs區,即可看到你安裝的字體裡哪些可以較完整覆蓋兼容區,在Word裡選擇使用即可省去一個個嘗試的麻煩。
除思源黑體、思源宋體可以顯示以外,Windows帶字體中微軟正黑(台)、細明體(台)、標楷體(台)、Meiryo(日)、游Gothic(日)、Gulim(韓)、Dotum(韓)、Malgun(韓)可以覆蓋這些韓國多音字。但需要注意日韓字體在CJK基本區並不完全覆蓋繁體中文需要的漢字,會在普通區缺字。
因為中國大陸產的字體很多都不會覆蓋這些因為日韓編碼映射問題產生的字,且繼續使用這些本來就是錯誤錄入的字符進行編輯沒有什麼正面意義。如果要編輯它們重新保存或分發的話,建議選擇一個可以fallback成明顯風格不同的字體,然後挑出這些字,全文替換為普通區的字,直至消滅所有兼容區的誤用字,再使用你想使用的其他中國產的字體。



