让我感到好奇的是——据说 HTML5 中的默认字符编码是 UTF-8。但是,如果我有一个简单的 HTML 文件,其中包含如下代码所示的 HTML5 文档类型,我会得到:
“你好”用俄语说:“ЗдраÑтвуйте”
在 Chrome 33+、Safari 6、IE11 等中。
<!DOCTYPE html>
<html>
<head></head>
<body>
<p>"hello" in Russian is "здраствуйте"</p>
</body>
</html>
是什么赋予了?浏览器不应该使用 UTF-8 unicode 标准并正确显示文本吗?我正在使用 Coda,它默认设置为使用 UTF-8 编码保存 html 文件,所以这不是问题所在。
原文由 dkugappi 发布,翻译遵循 CC BY-SA 4.0 许可协议
示例中的文本数据是 UTF-8 编码文本,被错误解释为 window-1252 编码。原因是没有指定编码,浏览器被迫猜测。要解决此问题,请指定编码;请参阅 W3C 页面 字符编码。两种独立于服务器设置的简单方法,只要服务器不在 HTTP 标头中发送错误的编码信息即可:
将文件另存为 带 BOM 的 UTF-8(在您的创作程序中可能有一个选项。
在
head
部分添加如下标签:没有为 HTML5 指定单一的默认编码。相反,当没有声明编码时,浏览器 应该 进行猜测。这是一个相当复杂的过程,如 8.2.2.2 确定字符编码 中所述。