decodeURIComponent()解码后如何从url取参数
时间: 2023-12-13 11:02:47 浏览: 265
使用JavaScript中的location.search属性可以获取URL的查询部分,包括参数和值。然后可以使用JavaScript中的split()方法将查询字符串转换为参数数组。最后,可以使用decodeURIComponent()方法对参数进行解码。
以下是一个示例代码:
```
var queryString = window.location.search;
var params = new URLSearchParams(queryString);
var paramArray = Array.from(params.entries());
paramArray.forEach(function(param) {
var key = decodeURIComponent(param[0]);
var value = decodeURIComponent(param[1]);
console.log(key + ": " + value);
});
```
此代码将查询字符串转换为参数数组,然后对每个参数使用decodeURIComponent()方法进行解码,并将键和值打印到控制台。
相关问题
java 使用 decodeURIComponent 解码
### 使用 `decodeURIComponent` 进行 URL 解码
在 Java 中并没有直接名为 `decodeURIComponent` 的函数,因为这是 JavaScript 特有的 API。不过,在 Java 中可以使用 `java.net.URLDecoder.decode(String s, String enc)` 方法来达到相同的效果[^1]。
此方法能够解码通过 UTF-8 或其他指定字符集编码的应用/x-www-form-urlencoded 形式的字符串。这相当于实现了 JavaScript 中 `decodeURIComponent()` 功能:
```java
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class Main {
public static void main(String[] args) throws UnsupportedEncodingException {
String encodedUrlComponent = "https%3A%2F%2Fwww.example.com%2Fpath%3Fa%3D1%26b%3D2";
System.out.println(URLDecoder.decode(encodedUrlComponent, "UTF-8"));
}
}
```
上述代码展示了如何利用 `URLDecoder.decode` 函数处理已百分号编码的 URL 组件并将其转换回原始形式。需要注意的是第二个参数指定了用于解码字节序列到字符的字符集名称;通常情况下推荐使用 `"UTF-8"` 作为该参数值。
decodeURIComponent
`decodeURIComponent()` 是JavaScript中的一个函数,用于解码使用 `encodeURIComponent()` 编码的URI组件。URI组件包括URI中的查询参数、哈希参数和路径中的任何参数,这些参数在传递给服务器之前通常需要进行编码。
`decodeURIComponent()` 函数将特殊字符转换回它们的原始值,包括对URL编码中的百分比编码进行解码。例如,如果您有一个编码的URI组件,如下所示:
```
var uriComponent = '%E6%88%91%E6%98%AF%E4%B8%AD%E5%9B%BD%E4%BA%BA';
```
这个URI组件表示的是 "我是中国人" ,其中 `%E6%88%91%E6%98%AF%E4%B8%AD%E5%9B%BD%E4%BA%BA` 是 "我是中国人" 的URL编码。要解码这个URI组件,可以使用 `decodeURIComponent()` 函数,如下所示:
```
var decodedComponent = decodeURIComponent(uriComponent);
console.log(decodedComponent); // 我是中国人
```
在上面的例子中,`decodeURIComponent()` 函数将 `%E6%88%91%E6%98%AF%E4%B8%AD%E5%9B%BD%E4%BA%BA` 解码为 "我是中国人" 字符串。
阅读全文