我在 IE8 和 IE7 中使用非英文字符(我们尝试了希伯来语和中文)运行以下 html 片段,而第二个链接永远无法正常工作。
警告框中显示的文本被破坏。这发生在 IE8 和 IE7 中,但不在 Firefox 中。它不依赖于 Windows 的区域设置。
这是 html 片段(为简洁起见,省略了 html 页眉和页脚,内容类型为“text/html; charset=utf-8”,响应标头也是如此):
<p>
<a href="javascript:alert('abשלוםab')">link with English and Hebrew text</a>
<a href="javascript:alert('ab%D7%A9%D7%9C%D7%95%D7%9Dab')">same text, url encoded</a>
</p>
这是单击第二个链接时弹出的警告框:
我知道 "שלום" 的字符串在 utf-8 中被编码为 8 个字节,因此有 8 个 %NN 项,并且警告框中还有 8 个奇怪的字符。问题是,我怎样才能让 IE 识别这是 utf-8 编码文本,就像 firefox 一样?
更新:
完整的 html(最小示例)可在此处获得。
我尝试了decodeURI
、decodeURIComponent
和unescape
,但没有成功。将链接从 移动href
到onclick
解决问题。我的问题是某些内容是从我无法控制的其他来源生成的,我最终在 href 属性中使用了 javascript 链接。