HTML实体编码以及Unicode编码

HTML实体编码

前言
网页中包含了大量的文字,我们的浏览器必须知道这些文字的编码方式,才能准确的将文字呈现出来。

字符的数字表示方法

每个字符有一个 Unicode 号码,称为码点(code point)。如果知道码点,就能查到这是什么字符。举例来说,英文字母a的码点是十进制的97(十六进制的61),汉字“中”的码点是十进制的20013(十六进制的4e2d)。

由于一些原因,不是所有的Unicode编码的文字都能够显示出来。
1.小于符号<和大于符号>,在html中被解释为标签,如果有在其他场合中需要使用的这些类型的符号,就需要考虑它是否会被解释为标签。
2.由于Unicode编码的字符太多,无法找到一种输入法能够将它们全部进行呈现。
3.网页不允许混合使用多种编码,如果使用 UTF-8 编码的同时,又想插入其他编码的字符,就会很困难。

HTML 为了解决上面这些问题,允许使用 Unicode 码点表示字符,浏览器会自动将码点转成对应的字符。

例如
字符的码点表示法是&#N;(十进制,N代表码点)或者&#xN;(十六进制,N代表码点),比如,字符a可以写成&#97;(十进制)或者&#x61;(十六进制)。

字符的实体表示方法

数字表示法的弊端显而易见,码点太多,不容易记住,所有就还有实体表示法。

例如

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

类似于这样的表示方法,我们叫做字符的实体编码。

URL编码

URL叫做“统一资源定位符”,我们简而言之,把它叫做网站,网址。

URL字符的组成部分
URL的组成部分有:26的英文字母,10个阿拉伯数字,连号(-),句点(.),下划线(_

URL字符编码的方法
URL 字符转义的方法是,在这些字符的十六进制 ASCII 码前面加上百分号(%)。下面是这几个字符及其转义形式。

  • !:%21
  • #:%23
  • $:%24
  • &:%26
  • ':%27
  • (:%28
  • ):%29
  • *:%2A
  • +:%2B

使用方法:比如,字母a的十六进制 ASCII 码是61,转义形式后就是%61。因此,www.apple.com又可以写成www.%61pple.com,浏览器一样识别。

UTF-8编码

ASCll码

在计算机内部,所有信息最终都是一个二进制数值。每个二进制位都有0和1两种状态,因此8个二进制位可以组成256种状态,这被称为一个字节。

ASCll码一共规定了128个字符的编码。比如空格SPACE是32,大写的A字母是65,小写的a字母是97。

UTF-8

互联网的普及,强烈的要求出现了一个统一的编码方式。UTF-8就是在互联网中使用的最多最广的Unicode的实现方式。其他的实现方式还有UTF-16(字符用两个字节或者四个字节进行表示)。

UTF-8最大的一个特点就是它是一种变长的编码方式,它可以使用1-4个字节表示一个符号,根据不同的符号变化字节的长度。

UTF-8的编码规则

1.对于单字节的符号,字节的第一位设置为0,后面的7位为这个Unicode码。因此对于英语字母,utf-8编码和Ascll码是相同的。
2.对于n字节的符号(n>1),第一个字节的前n位都设置位1,第n+1位设置为0,后面字节的前两位一律设置为10。剩下的没有提及的,全部为这个符号的Unicode编码。

0000 0000-0000 007F | 0xxxxxxx (0-127)
0000 0080-0000 07FF | 110xxxxx 10xxxxx (128-2047)
0000 0800-0000 FFFF| 1110xxxx 10xxxxxx 10xxxxxx (2048-65535)
0001 0000-0010 FFFF| 11110xxx 10xxxxxx 10xxxxxxx 10xxxxxx

上述,x为可编码位。

如果一个字节的第一位为0,则这个字节单独就是一个字节;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值