说明
网道HTML 教程学习笔记
1、简介
浏览器必须知道文字的编码方法,才能把文字还原出来。
一般情况下,服务器向浏览器发送 HTML 网页文件时,会通过 HTTP 头信息,声明网页的编码方式。
Content-Type: text/html; charset=UTF-8
上面的 HTTP 头信息的 Content-Type
字段先声明,服务器发送的数据类型是 text/html
(即 HTML 网页),然后声明网页的文字编码是 UTF-8
。
网页内部也会在 meta 标签,再次声明网页的编码。
<meta charset="UTF-8">
2、字符的数字表示法
2.1、简介
Unicode
字符集设计目标是包含世界上的所有字符,目前已经收入了十多万个字符。最常用的编码是UTF-8
编码,就是 Unicode
字符集的一种表达方式。
2.2、码点
每个字符有一个 Unicode 号码,称为码点(code point)。
2.3、注意
不是每一个 Unicode 字符都能直接在 HTML 语言里面显示。
原因如下:
- 1、不是每个 Unicode 字符都可以打印出来,有些没有可打印形式,比如换行符的码点是十进制的10(十六进制的A),就没有对应的字面形式。
- 2、小于号(<)和大于号(>)用来定义 HTML 标签,其他需要用到这两个符号的场合,必须防止它们被解释成标签。
- 3、由于 Unicode 字符太多,无法找到一种输入法,可以直接输入所有这些字符。换言之,没有一种键盘,有办法输入所有符号。
- 4、网页不允许混合使用多种编码,如果使用 UTF-8 编码的同时,又想插入其他编码的字符,就会很困难。
2.4、码点转成对应的字符
HTML 为了解决上面这些问题,允许使用 Unicode 码点表示字符,浏览器会自动将码点转成对应的字符
。
字符的码点表示法是:(浏览器会自动转换它们。)
-
&#N;
(十进制,N代表码点),比如a
可以写成a
,字符中
可以写成中
; -
&#xN;
(十六进制,N代表码点),比如a
可以写成a
,字符中
可以写成中
;
例子:hello 的不同写法
这里需要注意一点:<p>
标签不能写成 <p>
, 浏览器会把其当做文本内容。
<p>hello</p>
<!-- 等同于 -->
<p>hello</p>
<!-- 等同于 -->
<p>hello</p>
3、字符的实体表示法
3.1、简介
上面的数字表示法的不方便之处,在于必须知道每个字符的码点,不方便记忆。
HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity)
。
3.2、实体的写法
实体的写法是 &name;
,其中的 name 是字符的名字。
其中一些特殊字符,及其对应的实体。
-
<
:<
-
>
:>
-
"
:"
-
'
:'
-
&
:&
-
©
:©
-
#
:#
-
§
:§
-
¥
:¥
-
$
:$
-
£
:£
-
¢
:¢
-
%
:%
-
*
:$ast;
-
@
:@
-
^
:^
-
±
:±
-
空格
:
字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为escape
,中文翻译为字符的转义
。