<meta charset="UTF-8">是什么意思?
最近要找实习,时间有限,以后一定把底层原理写个明白
首先解释一下这句代码的意义:
<meta charset="UTF-8">
-
meta为标签head中的子标签
-
设置网页文件展示时使用的字符集
常见字符编码一览
编码名 | 解释 | 备注 |
ASCII | 1、ASCII编码每个字母或符号占1byte(8bits),并且8bits的最高位是0,因此ASCII能编码的字母和符号只有128个。有一些编码把8bits最高位为1的后128个值也编码上,使得1byte可以表示256个值,但是这属于扩展的ASCII,并非标准ASCII。通常所说的标准ASCII只有前128个值。 2、ASCII编码几乎被世界上所有编码所兼容(UTF16和UTF32是个例外),因此如果一个文本文档里面的内容全都由ASCII里面的字母或符号构成,那么不管你如何展示该文档的内容,都不可能出现乱码的情况。 3、半角->一个字节(英文)->ASCII->是编译器认识的 | |
Unicode | 万国码 | 1、国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。 2、UTF8解决字符间分隔的方式是数二进制中最高位连续1的个数来决定这个字是几字节编码。0开头的属于单字节,和ASCII码重合,做到了兼容。 |
UTF-8(16/32) | UTF-8是使用最广的一种 Unicode 的实现方式 | 将Unicode字符集的抽象代码位映射为8(16/32)位长整数(即代码位)进行数据存储或传输的序列。 |
GB2312 | 1、GB全称GuoBiao国标,GBK全称GuoBiaoKuozhan国标扩展。GB18030编码兼容GBK,GBK兼容GB2312,这三种编码有着非常深厚的渊源。 2、最早的简体中文汉字编码国家标准,采用双字节编码,收录7445个图形字符,其中包括6763个汉字。 3、GB2312:全角->两个字节->是编译器不认识的 | |
BIG5 | 台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字 | |
GBK | 是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。 | |
GB18030编码 | 是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集 |
表1 常见字符编码表
兼容性一栏
图1 常见字符编码兼容性一览
图中我们可以看出,ASCII被所有编码兼容,而最常见的UTF8与GBK之间除了ASCII部分之外没有交集,这也是平时业务中最常见的导致乱码场景,使用UTF8去读取GBK编码的文字,可能会看到各种乱码。而GB系列的几种编码,GB18030兼容GBK,GBK又兼容GB2312。
引用: