為什麼Win7系統字體檔案(.fon)遺失了一些未定義的字形

為什麼Win7系統字體檔案(.fon)遺失了一些未定義的字形

剛剛將我的工作電腦從 XP 切換到 Win7,我注意到一些奇怪的事情。

系統字體中缺少一些「未定義」字形,例如「Courier」、「Terminal」和「System」(即「字元對映表」的「字型」下拉清單中沒有圖示的字形)。

字元代碼0x81、0x8D、0x8F、0x90和0x9D在這些字體的XP版本中有一個小方塊,但在Win7中它們是空的(零寬度)。

您可以在記事本中「輸入」這些字符,方法是按住左側的[Alt] 鍵,在數字鍵盤上輸入四位十進位值(分別為0129、0141、0143、0144 和0157),然後釋放[ Alt] 鍵。在 XP 中,您會得到一個空方塊,在 Win7 中,您會得到一個零寬度字元 - 不會顯示任何內容,但用箭頭移動遊標會顯示“某物”在那裡...

當然,現在如果這是一個錯誤,有人會注意到它嗎?他們為什麼走了?

我注意到這一點是因為我經常為法語讀者編寫批次檔 (.bat),並且為了簡化重音字元輸入(和方框圖字元),我建立了一個包含 DOS 字元和等效 Windows 字元的檔案。缺失的字形對應於 DOS 字元 ü、ì、Å、É 和 ¥。

答案1

如果它們沒有字形,那麼我認為它們的顯示是“未定義的”,這意味著您不能依賴它是相同的。 Windows 7 可能已經更改了字體呈現,以更好地支援其他零寬度字元 - 我懷疑除了做出更改的 Microsoft 內部團隊之外,沒有人真正知道這一點。

我承認真正的DOS 稍微早於我的時代,但所有當前字體(包括Courier 和Terminal)都將描述的字形ü、ì、Å、É 和¥ 映射到0xDC、0xEC、0xC5、0xC9 和0xA5,包括在內部顯示時cmd.exe(不是真正的 DOS)。因此,我認為我遺漏了一些關於您到底在做什麼以及在哪裡使用什麼字體的謎題。 (我確實看到標有“系統”的字體在您描述的位置具有字形。也許將 CMD.exe 視窗的字體更改為具有適當字形支援的字體?)

相關內容