# decodeURIComponent 与特殊符号

## 问题地方

> 获客网页、获客文件的参数是从链接带过来的，里面解析的时候用到了 decodeURIComponent 方法，报错白屏。

## 原因

由于 decodeURI 转码时，通过%进行解析，如果字符串中存在%，则会出现 URI malformed

![img1](https://scrm0.cdn.banchengyun.com/material/70935963c4954bbf944c49d3d8bea61ef441d356.png)

![img2](https://scrm0.cdn.banchengyun.com/material/bcffa91f7869074587f928bcdb22c1b4ea9ef26a.png)

## 解决办法

```javascript
const data =
  location.query.data && JSON.parse(decodeURIComponent(location.query.data.replace(/%/g, '%25')))
```

## 总结

慎用路由传参的形式，这个参数非常长，长度 4140 个字节，把 base64 图片也传进来了，建议换一种方式。
