浏览器编码

    在浏览器中有些字符是预留的,如果想要正确的显示这些字符,就需要用字符相对应的别名替代,才能够正常显示。所以口有了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编码可以在标签内和标签的属性内被解析出来。

扫描二维码关注公众号,回复: 2636526 查看本文章

如果想让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编码。


猜你喜欢

转载自blog.csdn.net/u011877410/article/details/80681279