HTML5 编码和西里尔字母

新手上路,请多包涵

让我感到好奇的是——据说 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 许可协议

阅读 404
2 个回答

示例中的文本数据是 UTF-8 编码文本,被错误解释为 window-1252 编码。原因是没有指定编码,浏览器被迫猜测。要解决此问题,请指定编码;请参阅 W3C 页面 字符编码。两种独立于服务器设置的简单方法,只要服务器不在 HTTP 标头中发送错误的编码信息即可:

  1. 将文件另存为 带 BOM 的 UTF-8(在您的创作程序中可能有一个选项。

  2. head 部分添加如下标签:

 <meta charset=utf-8>

没有为 HTML5 指定单一的默认编码。相反,当没有声明编码时,浏览器 应该 进行猜测。这是一个相当复杂的过程,如 8.2.2.2 确定字符编码 中所述。

原文由 Jukka K. Korpela 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您想确定浏览器将使用哪个字符集,您必须在页面标题中使用

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

否则,您将受制于本地设置和浏览器自动化。

原文由 All Blond 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏