Stack Overflow 上的以下答案因其反對使用正規表示式解析 HTML 的令人信服的論點而聞名:https://stackoverflow.com/a/1732454/505154
貼文的內容越來越腐敗,最後應該是這樣的:
然而,在我的 Windows XP 筆記型電腦上,我看到以下內容:
如何才能讓這些「字元」正確顯示呢?
答案1
最簡單的方法是下載並安裝足夠大的字體,例如符號,並使用 Firefox 或 Chrome。
問題是雙重的。首先,文字包含 Win XP 附帶的字型不支援的組合變音符號。您可以使用一些免費字體來解決此問題。其次,當適用font-family
清單中列出的字體沒有覆蓋 HTML 文件中的字元時,IE 渲染字元的能力很差。 Chrome 和 Firefox 做得更好;即使是我在虛擬 Windows XP 系統中測試過的 Firefox 3 似乎也能很好地處理這種情況:它會從系統中的其他字體中擷取遺失的字元。
除了以幼稚的方式組合變音符號的頁面之外,還有使用此類標記的真實頁面。所以做好準備是件好事。沒有一種字體可以涵蓋所有字符,因此只需根據需要安裝其他字體即可;艾倫伍德(Alan Wood)有一個很好的頁面下載字體擁有大量的角色劇目。
答案2
這不僅僅是字符集。
為了正確顯示該內容,用戶端渲染文字及其用於此類需求的任何程式庫都支援組合 unicode 標記,並具有必要的字體和支援字體拼接以根據需要組合字體。
我思考主要字體是Microsoft Sans Serif 或Arial Unicode MS Regular,它們是每個版本的Windows 的標準字體,並且自XP 的初始版本以來已經進行了兩次廣泛的更新,可能包括您在此處看到的所有unicode變音標記。這裡可能還有其他字體在起作用,用於填充主要字體中缺少特定變音符號的空白。我不確定在不付費的情況下下載更新字體的副本(不為筆記型電腦購買 Windows Vista 或 Windows 7 或 Windows 8)的法律後果
如果問題是渲染庫缺乏對組合變音符號的支持,那麼再多的字體也無法幫助您正確顯示文字。您唯一的選擇是更新應用程式和/或其用於渲染文字的庫。