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)的法律后果
如果问题是渲染库不支持组合变音符号,那么无论多少字体都无法帮助您正确显示文本。您唯一的选择是更新应用程序和/或其用于渲染文本的库。