前端请求后台接口时参数包含特殊字符报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");//解密
注:可以使用在线工具试试特殊字符转码