前端请求后台接口时参数包含特殊字符报400错误

解决方法:前端使用encodeURI()加密。后台使用URLDecoder.decode()解密

例:

str=encodeURI(str);

后台--URLDecoder.decode(str,"UTF-8");

 

 encodeURI():把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $ & ( ) = : / ; ? + '。

反向编码函数:decodeURI()

 

 encodeURIComponent():把URI字符串采用URF-8编码格式转化成escape格式的字符串。与encodeURI相比,这个函数会将更多的字符进行编码,比如"/"等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个来进行编码。否则“/”字符被编码后将URL显示错误。不会被此方法编码的字符:! * ( )。

反向编码函数:decodeURIComponent()

 

后台加密和解密:

URLEncoder.encode("字符串","UTF-8");//编码(加密);

URLDecoder.decode("解密","UTF-8");//解密

注:可以使用在线工具试试特殊字符转码

 

posted @ 2021-04-22 16:44  zigood  阅读(1774)  评论(0编辑  收藏  举报