HTML,url,unicode编码

本文详细介绍了HTML实体编码、URL编码和Unicode编码的基本概念,以及如何在JavaScript中使用这些编码进行字符转义。通过实例展示了不同编码方式在实际应用中的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML实体编码

实体表示:
以&符号开始,后面跟着一个预定义的实体的名称,或是一个#符号以及字符的十进制数字。
例:

<p>hello</p>
<!-- 等同于 -->
十进制
<p>&#104;&#101;&#108;&#108;&#111;</p>
ord('h') -> 114(在ascii表中,h对应104这个数字)
 
<!-- 等同于 -->
十六进制
<p>&#x68;&#x65;&#x6c;&#x6c;&#x6f;</p>
hex(104) -> 68(x代表16进制,16进制下,104 == x68)

urlcode编码

URL 是“统一资源定位符”(Uniform Resource Locator),表示各种资源的互联网地址。
URL 字符转义的方法是,字符的十六进制 ASCII 码前面加上百分号(%)
例:在url地址栏输入?id=1’ order by 3 --+

在这里插入图片描述
url地址栏会将其解析为:?id=1%27%20order%20by%203%20–+
在这里插入图片描述

unicode编码

\u后跟字符的十六进制
例:

\u0027
Unicode编码 " ' " (单引号)

小结

ord() — unicode编码
hex() — 16进制
oct() — 8进制
int() — 10进制
bin() — 二进制

基础例题

1.<a href="%6a%61%76%61%73%63%72%69%70%74:%61%6c%65%72%74%28%31%29">aaa</a>
URL 编码 "javascript:alert(1)"
2.<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:%61%6c%65%72%74%28%32%29">
HTML字符实体编码 "javascript" 和 URL 编码 "alert(2)"
3.<a href="javascript%3aalert(3)"></a>
URL 编码 ":"
4.<div>&#60;img src=x onerror=alert(4)&#62;</div>
HTML字符实体编码 < 和 >
5.<textarea>&#60;script&#62;alert(5)&#60;/script&#62;</textarea>
HTML字符实体编码 < 和 >
6.<textarea><script>alert(6)</script></textarea>

高级例题

编码顺序
HTML->urlconde->javascript(unicode)

7.<button onclick="confirm('7&#39;);">Button</button>
HTML字符实体编码 " ' " (单引号)
8.<button onclick="confirm('8\u0027);">Button</button>
Unicode编码 " ' " (单引号)
9.<script>&#97;&#108;&#101;&#114;&#116&#40;&#57;&#41;&#59</script>
HTML字符实体编码 alert(9);
10.<script>\u0061\u006c\u0065\u0072\u0074(10);</script>
Unicode 编码 alert
11.<script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>
Unicode 编码 alert(11)
12.<script>\u0061\u006c\u0065\u0072\u0074(\u0031\u0032)</script>
Unicode 编码 alert 和 12
13.<script>alert('13\u0027)</script>
Unicode 编码 " ' " (单引号)
14.<script>alert('14\u000a')</script>
Unicode 编码换行符(0x0A)
15.<a href="&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x31;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x36;&#x33;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x36;&#x25;&#x33;&#x35;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x32;&#x25;&#x35;&#x63;&#x25;&#x37;&#x35;&#x25;&#x33;&#x30;&#x25;&#x33;&#x30;&#x25;&#x33;&#x37;&#x25;&#x33;&#x34;&#x28;&#x31;&#x35;&#x29;"></a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流年ꦿ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值