1

多年来,我已经在几种不同的浏览器(至少是 Chrome、Firefox 和 Opera)上看到了这种行为,但最近它只发生在 Opera 和 Chrome 中——我认为 Firefox 在某个时候修复了它。如果我有一个页面将相当大的数据块(几千行 HTML)推送到浏览器,如果我在数据中使用任何 HTML 实体,那么当您查看源代码时它们会出现格式错误。

例如,我在页面内容中放置了一个“右下铅笔”实体(✎ - 或✎),以便标记“编辑”链接。但是,当我在任何浏览器中加载同一页面并单击“查看源代码”时,我会看到一个随机代码,该代码通常与页面 HTML 中实际硬编码的内容不匹配。一些例子包括:

&x#x2#x270E;, &#x#x270E;,&#x270#x270E;

检查发送到浏览器的实际源代码的 Fiddler 捕获表明浏览器确实收到了正确的代码。一旦浏览器尝试在视图源选项卡中显示它,似乎就会出现问题。

其他代码也会发生这种情况, 变成&nbnbsp;等等&nnbsp;。神秘的是,这些代码会随着每次刷新而随机化。偶尔他们会通过正确的方式,尽管大多数时候他们会出现乱码。代码似乎在前端正确呈现,这只是每个主要浏览器中的一个错误,还是我应该担心通过 HTTP 推送较大数据集时的数据丢失?

过去的测试

我进行了两次测试来确认这一点:

(1) 将单个字符发送到托管在面向公众的 AWS LAMP 服务器上的有效 HTML5 页面内容中。查看了 Opera 中的内容并查看了源代码。大多数都还好,但大约在一半的时候它开始跳闸,并且在整个过程中偶尔会继续:

&#x27#x270E;

(2) 将单个字符发送到托管在 Intranet Windows 服务器上并通过 NetExtender VPN 提供的有效 HTML5 页面内容中。与第一次测试的结果相同。

&#x270#x270E;✎

重现步骤:

我已经在几个不同网络上的许多不同系统(Linux - 到目前为止,如 Ubuntu、Windows 7 和 Windows 10)上对此进行了测试。但是,如果其他人可以证实这一点,我将不胜感激。

  1. 创建一个有效的 HTML 页面并在正文标记之间粘贴一个 HTML 实体(十进制或十六进制表示)。
  2. 复制并粘贴字符以填充数百行内容(可能需要更少,但最有可能产生相同问题)。例如:       ……等等。
  3. 将页面保存在您的 Web 服务器上。
  4. 在新的 Opera 窗口中加载页面。
  5. 右键单击页面中的任意位置,然后单击“页面源”
  6. 复制源代码并手动检查或将其粘贴到https://validator.w3.org的 W3 验证器中- 这将有助于指出格式不正确的 HTML 实体。

Opera 49.0 插图

请参阅下面的代码检查器如何显示正确的 HTML 实体代码。但是,当您查看同一部分的页面源时,代码会出现格式错误。

Opera 49.0 测试 - 代码检查器是正确的,而页面源是错误的

4

0 回答 0