当字符串中含有%,先使用 encodeURI 进行编码,再使用decodeURI解码报错

发布时间 2023-08-21 17:07:29作者: 远山伴痴人

报错原因:decodeURI不允许参数有%,它会自动把%25转义为%,这个转义后的%导致的报错

解决方法一

在解码decodeURI 之前将%替换为%25

编码:url = encodeURI(encodeURI(url));

解码:

url= url.replaceAll("%","%25");

url= decodeURI(decodeURI(url));

解决方法二

在编码encodeURI之前就将%替换为一个独特的字符串,解码之后再替换回来

编码:

url = url.replaceAll("%","baifenhao");

url = encodeURI(encodeURI(url));

解码:

url= decodeURI(decodeURI(url));

url = url.replaceAll("baifenhao","%");