在网络浏览器中查看时中文文本编码丢失字符

Chinese text encoding missing characters when viewed in web browser

我有一个包含中文文本的 HTML 文件。当我在任何网络浏览器中打开文件时,有些字符似乎丢失了。

这是从浏览器复制的例子window:

本函早在请您参... 定于

我知道这里看到的所有字符都是正确的,除了缺失的字符(由母语为中文的人确认)。

在 HTML header 中,我有一个标记,表示该文件包含 UTF-8 编码字符:

<META http-equiv="Content-Type" content="text/html; charset=utf-8">

我已经在这个 META 标签中尝试了其他一些字符集,但到目前为止,我尝试的任何编码方法似乎都比 UTF-8 最终看起来更糟。

我也考虑到可能是字体的问题,所以我在我的系统上安装了3种不同的繁体中文字体,并强制Chrome使用它们。 None 其中有任何区别 - 缺失的字符仍然存在。

如果我用 Notepad++ 打开 HTML 文件,我可以看到以下内容:

http://i.imgur.com/GoS07WX.png

如果我将 select 和 copy-paste 这段文字输入普通的 MS 记事本,我会得到:

本函早在请您参与nbsp;定于

所以你可以看到这里Notepad++中可见的"xE5 x8A"好像被替换成了啊

在这种情况下浏览器会显示 �� 而不是呢吗?

再次查看 HTML 文件。

我看到一个以 UTF-8 编码的字符的前 2 个字节,后跟......让我们假设最初有一个 \xA0,当文件创建时它被变异为 &nbsp;将全局替换应用于 UTF-8 编码数据。

然而,\xE5\x8A\xA0 UTF-8 解码为 U+52A0,这与外星字符 U+52A 不同6 ... 离答案还不够近。