【问题标题】:character encoding html - utf-8 instead of latin1字符编码 html - utf-8 而不是 latin1
【发布时间】:2012-03-24 11:44:38
【问题描述】:

我有一个网页模板,基本上只是:

<html>
<body>...</body>
</html>

但是正文中的文本(错误地)被我的浏览器解释为 latin1。所以我把它改成:

<?xml encoding="utf-8"?>
<html>
<body>...</body>
</html>

这解决了问题,并且在我的特定浏览器(Linux 3.x 上的 Chrome 17.x)中,文本被正确解释为 UTF-8,但是......

指定 html 页面中的文本以 UTF-8 编码的最佳方式是什么(与最新的浏览器兼容和向前兼容)?

【问题讨论】:

  • (XML 编码声明仅在您将页面提供为application/xhtml+xml 而不是text/html 时有效。然后它是多余的,因为 UTF-8 已经是 XML 的默认编码。)跨度>

标签: html unicode utf-8 character-encoding web


【解决方案1】:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>

【讨论】:

  • 如果你改用 HTML5,那么&lt;meta&gt; 标签就变成了&lt;meta charset="utf-8"&gt;
【解决方案2】:

我想,这种 HTML4 方式:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
... etc

从我的网页剪切和粘贴。

【讨论】:

  • 此外,您应该尝试说服您的网络服务器发出等效的 HTTP 标头。
  • 哪个 HTTP Header 是等价的,它的正确值是多少?
  • Content-Type: text/html; charset=utf-8,就像&lt;meta&gt; 标签所说的那样。这就是 &lt;meta http-equiv="..." content="..."&gt; 的用途 - 在 HTML 正文中指定 HTTP 标头。
【解决方案3】:

不要在非 xml 上放置 &lt;?xml?&gt;。使用meta 标记指定http 内容类型字符集。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-04
    • 2020-09-15
    • 2011-07-23
    • 2012-03-07
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多