【HTML基础笔记】之【常用编码】
HTML 常用编码
4.1 HTML 实体编码
HTML实体编码,也即HTML中的转义字符
。
- 在 HTML 中,某些字符是预留的,例如在 HTML 中不能使用小于号
<
和大于号>
,这是因为浏览器会误认为它们是标签。 - 如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。
- HTML 中的常用字符实体是不间断空格。(注意:实体名称对
大小写敏感
!) - 字符实体类似这样:&entity_name; 或者 &#entity_number;如需显示小于号,我们必须这样写:< 或 <
常见的实体编码:
显示结果 | 描述 | 实体名称 | 实体编号 |
---|---|---|---|
空格 | | ||
< | 小于号 | < | < |
> | 大于号 | > | > |
& | 和号 | & | & |
" | 引号 | " | " |
’ | 撇号 | ' (IE不支持) | ' |
4.2 HTML 字符集
- 如果需要正确地显示HTML页面,浏览器必须知道使用何种字符集。
- 万维网早期使用的字符集是ASCII。ASCII支持 0-9 的数字,大写和小写英文字母表,以及一些特殊字符。
- 除了ASCII字符集,后来还出现了ISO字符集和Unicode标准。
4.2.1 ASCII 字符集
- ASCII 字符集被用于因特网上不同计算机间传输信息。ascii码是字符的整数形式,是另一种标准码,任意一个字符都对应一个整数,将这个字符转换成ascii码是为了让你知道这个字符对应的数值是多少,其实转化不转化意义不大,因为他们在内存中的存储是一样的,都是0和1构成的相同的机器码,运算时你可以用字符直接运算,也可以用ascii码运算,结果是一样的。
- 不管是ascii码还是字符,都是显示出来方便我们看的,它们本质上是一组二进制码(机器码),字符和它的ascii码根本就是一回事,只是表现形式不同而已,计算机内部运算使用它的二进制,而你显示器上看到的是字符或ascii码。
- ASCII ,它的全称是"美国信息交换标准代码"。它设计于60年代早期,是计算机和诸如打印机、磁带驱动器之类的硬件设备的标准字符集。
- ASCII 是7比特字符集,包含了128个不同的字符值。
- ASCII 支持0-9的数字,A-Z大写和小写英文字母,以及一些特殊字符。
- 通常需要时就到ASCII码对照表中进行转换,或者到在线转换网站进行编码。
以下是常用的ASCII码对照表:
4.2.2 ISO字符集
- ISO 字符集是国际标准组织 (ISO) 针对不同的字母表/语言定义的标准字符集。
- 而国际标准化组织(International Organization for Standardization,简称为ISO)是标准化领域中的一个国际性非政府组织。
下面列出了世界各地使用的不同字符集:
4.2.3 Unicode标准
- 由于上面列出的字符集都有容量限制,而且不兼容多语言环境,Unicode联盟开发了 Unicode 标准。
- Unicode标准涵盖了世界上的所有字符、标点和符号。不论是何种平台、程序或语言,Unicode 都能够进行文本数据的处理、存储和交换。
- Unicode联盟开发了Unicode标准。他们的目标是用标准的Unicode转换格式 (UTF) 来取代现有的字符集。
- Unicode标准已经获得了成功,在 XML、Java、ECMAScript (JavaScript)、LDAP、CORBA 3.0、WML 中,Unicode已经得到了实现。在许多操作系统以及所有的现代浏览器中,Unicode同样得到了支持。Unicode联盟与领导性的标准发展组织进行合作,比如 ISO、W3C 以及 ECMA。
Unicode 可以被不同的字符集兼容。
最常用的编码方式是 UTF-8 和 UTF-16:
字符集 | 描述 |
---|---|
UTF-8 | UTF8中的字符可以是1-4个字节长。UTF-8可以表示Unicode标准中的任意字符。UTF-8向后兼容 ASCII。UTF-8是网页和电子邮件的首选编码。 |
UTF-16 | 16比特的Unicode转换格式是一种Unicode可变字符编码,能够对全部Unicode指令表进行编码。UTF-16主要被用于操作系统和环境中,比如微软的Windows 2000/XP/2003/Vista/CE以及Java和.NET字节代码环境。 |
4.3 HTML URL编码
- URL编码是一种浏览器用来打包表单输入的格式。
- 浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。
- 那为什么需要进行URL编码呢?
- 我们都知道Http协议中参数的传输是"key=value"这种键值对形式的,如果要传多个参数就需要用“&”符号对键值对进行分割。如"?name1=value1&name2=value2",这样在服务端在收到这种字符串的时候,会用“&”分割出每一个参数,然后再用“=”来分割出参数值。所以这时候就需要通过URL编码进行数据分离从而提取有用信息。
- URL编码只是简单的在特殊字符的各个字节前加上%,例如,我们对上述会产生奇异的字符进行URL编码后结果:“name1=va%26lu%3D”,这样服务端会把紧跟在“%”后的字节当成普通的字节,就是不会把它当成各个参数或键值对的分隔符。
- URL编码的原则就是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。
4.4 HTML Base64编码
- Base64 是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
- Base64 编码是从二进制到字符的过程,可用于在HTTP 环境下传递较长的标识信息。采用Base64 编码具有不可读性,需要解码后才能阅读。
- Base64 由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。
- 其实在日常生活中,Base64编码无处不在。X.509公钥证书也好,电子邮件数据也好,经常要用到Base64编码,那么为什么要作一下这样的编码呢?
- 我们知道在计算机中的字节共有256个组合,对应就是ascii码,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。
- 对证书来说,特别是根证书,一般都是作Base64编码的,因为它要在网上被许多人下载。电子邮件的附件一般也作Base64编码的,因为一个附件数据往往是有不可见字符的。
- 那么Base64到底是怎样编码的呢?
- 简单来说,任何一个数据无非可以看作一个比特流,如01000100010011101100111010111100011001010…那么我们取6个比特为一组,计算它的ascii值,得到一个字符,这个字符肯定是可见字符,好,把它对应的字符写出来,再取6个比特,再次计算它的ascii值,如此下去,直到最后,就完成了编码。
【HTML基础笔记】之【常用编码】相关推荐
- MATLAB 基础笔记(二):常用矩阵的生成
笔记二是简单介绍常用矩阵的生成 目录 笔记二是简单介绍常用矩阵的生成 1.零矩阵的生成 2.单位矩阵的生成 3.全1矩阵的生成 4.随机整数向量生成 5.生成指定对角线元素矩阵 6.生成对角矩阵 7. ...
- JavaScript基础JavaScript的常用编码惯例(007)
采用一定的编码惯例,可以使得项目中的代码提到较高的一致性,可读性和可预测性. 1.缩进 缩 进可以提高代码的可读性.不过错误的缩进也可能导致代码的误读.有人认为缩进应该使用tab,另外的一些人主张采用 ...
- 【算法基础笔记】常用的排序算法的时间、空间复杂度,部分排序算法原理
冒泡排序 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了 ...
- 【Git基础笔记】常用命令
命令 cd 改变目录,即进入某目录 pwd 查看当下目录路径 mkdir ** 在当前目录下创建"**"目录 mkdir -p 目录路径 在当前目录下可创建多级目录 whoami ...
- 【MC 网易-我的世界-mod开发基础笔记】 --- 创建第一个空白Mod
目录 创建Mod文件夹 构建Mod的基本目录结构 构建行为包基本结构 构建脚本文件夹基本结构 构建 mod 启动入口脚本 构建资源包基本结构 构建国际化文件基本结构 自定义物品配置中文名称 自定义方块 ...
- HiveQL学习笔记(二):Hive基础语法与常用函数
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
- Python学习笔记(4)~Python基础练习之常用内置函数(1-10)
Python基础练习之常用内置函数(1-10) 1.abs() 作用 求数的绝对值或者复数的模 测试demo #!/usr/bin/python3 # abs: 求绝对值 or 复数的 ...
- JavaSE基础笔记——常用API、Lambda、常见算法
日期与时间 时间日期是在任何一个程序系统里几乎都不可能忽略掉的数据量,而且大量的算法在底层都会使用到时间日期数据值作为算法的基本种子(随机数算法或加密算法都经常用到). 计算机里,时间日期的本质 作为 ...
- 大数据HiveSQL学习笔记三-查询基础语法以及常用函数
大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...
最新文章
- 滴滴自动驾驶,现在是一个怎样的“富二代”创业项目?
- 【项目实战课】微信小程序图像识别模型前后端部署实战
- hdu6383(2018 “百度之星”程序设计大赛 - 初赛(B))
- 语音社交产品,安全合规“防坑指南”!
- Go学习笔记—标准库Context
- lpv4的地址格式由多少个字节组成_我们为什么有这么多字符编码格式?
- webpack 保存文件后自动打包_继webpack后又一打包神器Parcel
- 数据结构-链表2-链式存储
- 关于如何破坏单例我说了好几种方式,面试官却说:我其实随便问问,没想到你真会...
- python递归函数的使用方法_让你Python到很爽的加速递归函数的装饰器
- 【word使用技巧】删掉某一行参考
- 现代通信原理6.1 常规调幅调制(AM)与抑制载波双边带(DSB-SC)调制
- 【秋招】拼多多_数据分析岗_面试题整理
- Theano简单入门(三)
- Slove the {Failed to load unit 'HGCM' (VERR_INVALID_PARAMETER)}
- html title中加图标,科技常识:HTML中title前面小图标的实现_如何给网页标题添加icon小图标...
- 如何提升广告ROI?转化跟踪了解一下
- CAD随机多面体3D 多面体骨料 凸多面体颗粒
- 微信聊天记录同步电脑
- NavigationController 常用方法归总