URL编码是什么

文章类型:其他

发布者:hp

发布时间:2026-04-25

一引言

Url编码通常也称为百分号编码,通过使用%百分号加上该字节的十六进制组成编码。

因为URL中有些字符会引起歧义,例如URL参数字符串中如果包含”&”或者”%”就会造成服务器解析错误,因此就需要对其进行编码

二:定义

Url编码默认使用的字符集是US-ASCII[ˈæski]。对于Unicode字符,则使用%百分号加上该字节的utf-8字节组成编码。

三:类型

encodeURI用于将字符串作为 URI 进行编码。其目的是对目标URI进行编码使之成为一个合格的URI。

var uri = "http://www.example.com/My First Page.html?name=张三&age=20";
var encoded = encodeURI(uri);
console.log(encoded);
// 输出: "http://www.example.com/My%20First%20Page.html?name=%E5%BC%A0%E4%B8%89&age=20"

encodeURIComponent用于将字符串作为URI参数进行编码。因此encodeURIComponent还必须转义用于分隔URI各个部分的标点符号,以防止歧义。

var paramValue = "http://www.example.com/search?q=test&lang=zh";
var encodedParam = encodeURIComponent(paramValue);
var fullUrl = "http://www.mysite.com/redirect?url=" + encodedParam;

console.log(encodedParam);
// 输出: "http%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3Dtest%26lang%3Dzh"

console.log(fullUrl);
// 输出: "http://www.mysite.com/redirect?url=http%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3Dtest%26lang%3Dzh"

四:应用场景

当需要编码整个URL时,比如将一个完整的网页地址传递给浏览器,应当使用encodeURI,因为它会保留URL中具有特殊含义的字符,如冒号、斜杠和问号等。

当处理URL中的查询参数时,比如用户输入的搜索关键词或表单数据,则必须使用encodeURIComponent,以确保参数中的特殊字符被正确转义,避免破坏整个URL结构。

五:注意事项

1:encodeURI虽然能处理大多数情况,但它并不会对单引号、双引号等字符进行编码。

2:对于包含中文字符的URL,encodeURI会将其转换为UTF-8编码的百分号形式,而encodeURIComponent则会更加彻底地转义几乎所有非字母数字字符。

3:在构建动态URL时,建议对每个参数单独使用encodeURIComponent进行编码,再拼接成完整的查询字符串,以确保兼容性和可靠性。

上一篇CORS是什么
下一篇node的stream
评论
0条评论遵守法律,文明用语,共同建设文明评论区

暂无评论,快来发表第一条评论吧~