说明
网道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,中文翻译为字符的转义。