在浏览器中有些字符是预留的,如果想要正确的显示这些字符,就需要用字符相对应的别名替代,才能够正常显示。所以口有了html编码,js编码,url编码。
1.html编码
在 HTML 中,某些字符是预留的。在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。所以可以使用别名来替代这些预留的字符,比如 就可以替代空格,>替换>。还可以使用十进制或者十六进制的ASCII码。
1.下面是预留字符与别名对照表:
显示结果 | 描述 | 实体名称 | 实体编号 |
---|---|---|---|
空格 | |   | |
< | 小于号 | < | < |
> | 大于号 | > | > |
& | 和号 | & | & |
" | 引号 | " | " |
' | 撇号 | ' (IE不支持) | ' |
¢ | 分(cent) | ¢ | ¢ |
£ | 镑(pound) | £ | £ |
¥ | 元(yen) | ¥ | ¥ |
€ | 欧元(euro) | € | € |
§ | 小节 | § | § |
© | 版权(copyright) | © | © |
® | 注册商标 | ® | ® |
™ | 商标 | ™ | ™ |
× | 乘号 | × | × |
÷ | 除号 | ÷ | ÷ |
2.十六进制
前面&#x,比如 '<' 用十六进制替代就是 <。
3.十进制
前面需要加上&#,比如 '<' 用十六进制替代就是 `。
html编码可以在标签内和标签的属性内被解析出来。
如果想让div节点的内容是'</div>'可以编写如下html,
<div>`/div></div>不会干扰之后的闭合标签。
或者你想在属性中加上'">'值,可以这样编写html,
<img src="">">
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编码。
更多推荐
浏览器编码
发布评论