浏览器编码

    在浏览器中有些字符是预留的,如果想要正确的显示这些字符,就需要用字符相对应的别名替代,才能够正常显示。所以口有了html编码,js编码,url编码。

1.html编码

  在 HTML 中,某些字符是预留的。在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。所以可以使用别名来替代这些预留的字符,比如&nbsp;就可以替代空格,&gt;替换>。还可以使用十进制或者十六进制的ASCII码。

1.下面是预留字符与别名对照表:

显示结果描述实体名称实体编号
 空格&nbsp;&#160;
<小于号&lt;&#60;
>大于号&gt;&#62;
&和号&amp;&#38;
"引号&quot;&#34;
'撇号 &apos; (IE不支持)&#39;
分(cent)&cent;&#162;
£镑(pound)&pound;&#163;
¥元(yen)&yen;&#165;
欧元(euro)&euro;&#8364;
§小节&sect;&#167;
©版权(copyright)&copy;&#169;
®注册商标&reg;&#174;
商标&trade;&#8482;
×乘号&times;&#215;
÷除号&divide;&#247;

2.十六进制

前面&#x,比如 '<' 用十六进制替代就是 &#x3c。

3.十进制

前面需要加上&#,比如 '<' 用十六进制替代就是 &#x60。


html编码可以在标签内和标签的属性内被解析出来。

如果想让div节点的内容是'</div>'可以编写如下html,

<div>&#x60/div></div>不会干扰之后的闭合标签。

或者你想在属性中加上'">'值,可以这样编写html,

<img src="&quot;&gt;">



2.js编码

有如下几种形式可以对js代码中的字符进行编码,斜杠转义,十六进制和unicode。

1.斜杠转义

'"'可以转成'\"'

2.十六进制

'"'可以转为\x22

3.unicode

'"'可转为\u0022

如果在js中想输出'"',可以编写如下代码,

alert("\"")


3.url编码

使用%加上十六进制的ASCII码来替换原来的字符。

比如'&'就可以用%26来表示,适用于<a>标签的href或者<img>标签的src或者<iframe>的src,一般只需要对value值进行编码即可,比如,http://abc?a=b,如果想让b的值包含&字符就必须对其进行编码,http://abc?a=ttt%38ttt


如果这三种编码方式同时出现在同一场景中,那么浏览器的解码顺序是html编码>url编码>js编码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值