编码的简要介绍

HTML实体编码

在目前的HTML文件中,使用的编码方式主要是UTF-8--可变长字符编码。

UTF-8是由最开始的ASCII码,经过多年的演变,收集全球符号、文字最后形成的字符编码。

我们这里介绍的字符编码主要集中于ASCII中,当然ASCII也包含在了UTF-8之中。

这里还是要谈一下进制的问题,进制分为二进制(即逢2进位)、八进制、十进制、十六进制。日常生活中接触最多的是十进制,但计算机可以处理的是二进制,八进制和十六进制在不同的场合也有相应的使用。

实体编码

HTML中的码点显示是这样的:&#N(十进制,N代表数字),&#xN(十六进制),这里是关注的重点,即表现形式。

举个例子:

hello

     --这是一个简单的段落符

hello是内容,首先根据ASCII码,将其转换为十进制

hello

上面就是转为十进制的编码表现形式,HTML可以进行编译,并将编译后的内容呈现出来。

hello

上面则是使用了十六进制的编码形式,依然可以识别

这里需要注意一下:HTML标签本身,并不能使用码点来进行表示,浏览器无法识别。

像:

转换为十进制<$#112>或者将<>里面的p进行转换,无法识别,或者<p<将

全部转为十进制也是无法识别。仅标签之间的内容部分可以实现此操作。

<p<这种会在页面上将标签编译出来但不会执行。简单来说就是编译后

会出现在页面上,我们想要的标签效果不会出现,代码本身出现在页面上。

除了上面的内容字母等可以实现转码,HTML中自带的特殊字符也是非常实体编码中的重要内容。

  • <<

  • >>

  • ""

  • ''

  • &&

  • ©©

  • ##

  • §§

  • ¥¥

  • $$

  • ££

  • ¢¢

  • %%

  • *$ast;

  • @@

  • ^^

  • ±±

  • 空格: 

这也是可以在页面显示出来的,但是在标签上也无法编译的。

urlcode编码

URL又叫统一资源定位符,简单来说就是网址

URL组成:协议(http/https/ftp)://域名/IP:端口号+路径?/#实体参数

相较于HTML实体编码,URL的表现形式是这样的:%N(N是16进制)

比如:! %21    (  %28       )  %29

后面的数字呢就是ASCII码上所对应的十进制转换为了十六进制

UTF-8编码

UTF-8可变长的编码方式,实现是较为复杂的

编码规则(两条):

1、对于单字节的符号,字节第一位为0,后面7为为符号的Unicode码,这个可以查ASCII也可以获得。

2、对于n字节的符号,第一个字节的前n为设置为1,第n+1为设为0,后面的前两位一律设为10,剩下的二进制则为这个字符的Unicode码。

语言上的理解总是枯燥的,换个方式理解一下

Unicode符号范围(十六进制)            |    UTF-8编码方式(二进制)

0000 0000-0000 007F   0-127              |    0xxxxxxx

0000 0080-0000 07FF   128-2047        |    110xxxxx 10xxxxxx

0000 0800-0000 FFFF   2048-65535   |     1110xxxx 10xxxxxx 10xxxxxx

根据范围呢,我们就可以判断符号为几字节,像英文字母就是1字节,像汉字就是3字节,一下表情符号则就是4字节。

1字节,a ASCII 97 97转为二进制1100001 填入编码 01100001 转十六进制61

3字节

中文字,一

首先转Unicode码,19968,范围3字节

然后转二进制,100111000000000

然后套进去,从右往左选取数字,缺位补0。11100100 10111000  10000000

最后转为16进制,8位一转。e4 b8  80

你可能感兴趣的:(html)