HTML5页面语言,方向和编码

Bar*_*uch 9 unicode html5 utf-8 right-to-left

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

Chu*_*ckE 10

<html dir="rtl" lang="he">
  <head>
    <meta charset="utf-8">
     ...
    </head>
  ...
</html>
Run Code Online (Sandbox Code Playgroud)

  • 我想补充说,字符编码元标记是文档中的第一个元标记非常重要.想象一下,您之前使用希伯来字符声明文档标题.用于获取和解析文档的一些工具将以错误的编码解析文档的标题,从而导致字符串处理不一致.这是英语不受影响的问题. (5认同)

use*_*118 9

您需要以下内容:

  1. A <!doctype html>表示您的网页是HTML5.
  2. <HTML>具有以下属性的标记:
    • dir="rtl"
    • lang="he"
      注意:您可以省略",或使用'.
  3. 一个<meta>标签声明字符编码.您可以选择以下其中一项:
    • <meta charset="UTF-8">
      注意:您可以省略",或使用'.
    • <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      这是声明字符编码的"遗留"方式.它仍然允许在HTML5中,但所有现代浏览器都支持第一个版本,因此不需要这样做.
      注意:您可以省略"http-equiv属性,或使用'而不是所有属性.
    • 如果浏览器遇到UTF-8字节顺序标记,它会将HTML5文件视为UTF-8.无论使用meta标签声明的任何字符编码如何,都会发生

此处使用的标记,属性和属性值DOCTYPE都不区分大小写.

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

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

  • 关于那些可能省略的引号:如果你编写一个解析器,你应该期望引号可能会丢失.如果你编写文档或文档生成器,你真的应该包括引号. (2认同)