0
点赞
收藏
分享

微信扫一扫

04 # HTML 字符编码

耶也夜 2022-08-18 阅读 75


说明

​​网道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​​​ 可以写成​​&#97;​​​,字符​​中​​​ 可以写成​​&#20013;​​;
  • ​&#xN;​​​ (十六进制,N代表码点),比如​​a​​​ 可以写成​​&#x61;​​​,字符​​中​​​ 可以写成​​&#x4e2d;​​;

例子:hello 的不同写法

这里需要注意一点:​​<p>​​​标签不能写成 ​​<&#112;>​​, 浏览器会把其当做文本内容。

<p>hello</p>
<!-- 等同于 -->
<p>hello</p>
<!-- 等同于 -->
<p>hello</p>

3、字符的实体表示法

3.1、简介

上面的数字表示法的不方便之处,在于必须知道每个字符的码点,不方便记忆。

HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为​​实体表示法(entity)​​。

3.2、实体的写法

实体的写法是 ​​&name;​​,其中的 name 是字符的名字。

其中一些特殊字符,及其对应的实体。

  • ​<​​​:​​&lt;​
  • ​>​​​:​​&gt;​
  • ​"​​​:​​&quot;​
  • ​'​​​:​​&apos;​
  • ​&​​​:​​&amp;​
  • ​©​​​:​​&copy;​
  • ​#​​​:​​&num;​
  • ​§​​​:​​&sect;​
  • ​¥​​​:​​&yen;​
  • ​$​​​:​​&dollar;​
  • ​£​​​:​​&pound;​
  • ​¢​​​:​​&cent;​
  • ​%​​​:​​&percnt;​
  • ​*​​​:​​$ast;​
  • ​@​​​:​​&commat;​
  • ​^​​​:​​&Hat;​
  • ​±​​​:​​&plusmn;​
  • ​空格​​​:​​&nbsp;​

字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为​​escape​​​,中文翻译为​​字符的转义​​。


举报

相关推荐

0 条评论