總的來說,Vista 的字體查看器和 XP 的并沒有太大區(qū)別,只是將頭部的字體信息部分顯示方式做了一點(diǎn)修改。但 Vista 字體查看器的本地化工作明顯沒有做夠,居然無法顯示中文字符的預(yù)覽,無論什么語言的字體都會(huì)顯示出 "The quick brown fox jumps over the lazy dog. 1234567890" 這一句, 而且還有一些中文字體無法顯示出其中文名稱。如果平時(shí)不和這些字體打交到倒也沒什么,但對(duì)于有這部分需求的人總不能找到字體后都先安裝到系統(tǒng)中再用其它軟件查看效果吧。今天正巧需要找?guī)讉€(gè)字體,這個(gè) Bug 可把我惹毛了,研究了一下。還真的有解決辦法。
首先我想到用 XP 中的 fontview.exe 文件替換掉 Vista 的,成功。但文件畢竟是 XP 的,不知道會(huì)不會(huì)引發(fā)其它問題。于是用 Restorator 2007 打開 XP 的 fontview.exe ,發(fā)現(xiàn)有一個(gè)“信息表”資源,一堆16進(jìn)制編碼,不過從右側(cè)的預(yù)覽可以看出這部分的確包含字體預(yù)覽窗格中的文字。再打開 Vista 的文件,沒有“信息表”資源,想必是在它的 mui 中,用 XP 的“信息表”替換掉 Vista 的。隨便找一個(gè)字體打開,沒有出錯(cuò),不過文字顯示位置全部錯(cuò)亂,比如窗口左上角的“打印”變成了我們苦苦尋找的“Windows 中文字型范例 1234567890”,看來對(duì)應(yīng)關(guān)系不太一樣,于是導(dǎo)出 Vista 的“信息表”,使用16進(jìn)制編輯軟件打開想手動(dòng)修改,不過軟件貌似不支持將字符替換為中文,于是又搜中文轉(zhuǎn)16進(jìn)制碼的東西。
自認(rèn)為修改完成后想要替換回 mui 文件時(shí),手一抖將 mui 文件拖拽到了 ResHacker 的圖標(biāo)上,不看不知道,一看...原來 ResHacker 可以直接對(duì)“信息表”資源進(jìn)行修改(ResHacker 稱之為“消息表”),暈...費(fèi)了我半天勁...于是直接修改完畢,順便還漢化了2個(gè)微軟沒有翻譯的地方。保存,試驗(yàn)成功。這樣以后就可以直接查看該字體中文字符的樣式了,不過某些字體無法顯示中文名稱的問題還是沒有解決(如果你認(rèn)為這一點(diǎn)很重要那么就使用 XP 的 fontview.exe 吧)。
下面是對(duì)比圖,上為 Vista 默認(rèn)狀態(tài),下為修改 mui 后的效果。