路由网关Zuul请求参数GBK乱码问题
最近做了一个需求,是用springcloud做框架,zuul做路由网关,客户方有个请求参数是中文且采用URLEncode (GBK编码),比如 响应参数是“成功”,返回时url是:
http:/ /localhost:8769/cloud/client/h.do?RetMsg=%b3%c9%b9%a6&TransID=123456
所以我想通过zuul对参数进行解码,自己定义了一个MyFilter
此时在过滤器中获取到的参数打印出来是乱码 request.getParameter(“RetMsg”)
然后我想知道是哪里的问题,又用 request.getQueryString()打印日志
这样打印出来的日志显然是对的,后来也跟进代码看了下,暂时没发现是哪里的问题,
只能说问题被绕开了,我能继续进行下面的开发流程,但getParameter为啥获取的参数和getQueryString()不一样,
补充一下:getQueryString 方法是直接拿取参数 没有编码
getParameter 有解码,不过我都试过
strs = new String(strs.getBytes(“iso-8859-1”),“GBK”);
strs = new String(strs.getBytes(“iso-8859-1”),“UTF-8”);
URLDecoder.decode()
都是乱码,所以也不知道是什么原因了,暂留问题。。。。。