【问题标题】:HTML5 page language, direction and encodingHTML5 页面语言、方向和编码
【发布时间】:2012-10-11 12:28:05
【问题描述】:

将 HTML5 页面声明为希伯来语、RTL 和 utf-8 编码的正确方法是什么?我有一段时间没有这样做了,但我记得在 HTML4 中它涉及 3 或 4 个标签和属性,这些标签和属性似乎是多余的。还是一样吗?

【问题讨论】:

    标签: html unicode utf-8 right-to-left


    【解决方案1】:
    <html dir="rtl" lang="he">
      <head>
        <meta charset="utf-8">
         ...
        </head>
      ...
    </html>
    

    【讨论】:

    • 想补充一点,字符编码元标记是文档中的第一个元标记,这一点非常重要。想象一下,您之前使用希伯来语字符声明了文档标题。一些用于获取和解析文档的工具会以错误的编码解析文档的标题,从而导致字符串处理不一致。这是英语不会遇到的问题。
    【解决方案2】:

    您需要以下内容:

    1. &lt;!doctype html&gt; 表示您的网页是 HTML5。
    2. 具有以下属性的&lt;HTML&gt; 标记:
      • dir="rtl"
      • lang="he"
        注意:您可以省略",或改用'
    3. &lt;meta&gt; 标记用于声明字符编码。您可以选择以下选项之一:
      • &lt;meta charset="UTF-8"&gt;
        注意:您可以省略",或改用'
      • &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
        这是声明字符编码的“传统”方式。它在 HTML5 中仍然是允许的,但所有现代浏览器都支持第一个变体,所以没有必要这样做。
        注意:对于http-equiv 属性,您可以省略",或者对所有属性使用'
      • 如果浏览器遇到 UTF-8 字节顺序标记,它会将 HTML5 文件视为 UTF-8。无论使用meta 标签声明的任何字符编码如何,都会发生这种情况。

    这里使用的标签、属性和属性值,或者DOCTYPE,都不区分大小写。

    注意:如果浏览器遇到字符编码声明,它将使用指定的编码从头开始重新解析文档。您可以将您的编码放在Content-Type HTTP 标头中,这样就不会出现问题。

    另请注意,浏览器只会在文档的前 1024 个字节中查找字符编码声明。

    【讨论】:

    • 关于那些可能省略的引号:如果您编写解析器,您应该期望引号可能会丢失。如果您编写文档或文档生成器,则确实应该包含引号。
    【解决方案3】:

    你需要这些来创建一个 HTML5 页面,语言为希伯来语,方向为 RTL,utf-8 编码

    &lt;!DOCTYPE html&gt; 用于将其声明为 HTML5 页面

    &lt;html dir="rtl" lang="he"&gt; 方向和语言

    &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;utf-8

    【讨论】:

      【解决方案4】:
      <html dir="rtl" lang="he">
      


      不是:&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;

      不适用于“Chrome”和“Firefox”浏览器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 2012-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多