我有一个HTML页面:
<html>
<head>
Web page
</head>
<body>
<p>This sentence has multibyte characters:? ??? ??? ??? ??, ?? ??? ??? ? ? ??, ? ??? ??? ?? ? ??? ??? ??, ??? ??? ??? ?? ?, ? ??? ??? ??
</p>
<p>á, é, í, ó, ú, ü, ñ, ¿, ¡</p>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
独立时,此页面可正确显示.但是,我有一个网站试图在iFrame中显示此页面.在那里,重音字符显示为带有问号的黑色钻石.我已经尝试添加指定UTF-8编码的元标记(文件保存为),但这不会修复具有iFrame的页面.实际上,当您将该标记添加到HTML页面时,它也会自行打破该页面.我在这里错过了什么?
有趣的是,该文件是 ANSI 编码,而不是 UTF-8。该页面可以自行运行,因为浏览器会自动检测 ANSI 并显示出来。但是,我在包含 iFrame 的页面上强制使用 UTF-8,因此它尝试以 UTF-8 显示 ANSI 格式文件 - 因此出现了问题。答案是用 UTF-8 正确编码网页。