问题:
使用springcloud gateway时 在重写请求给对应微服务时 如果在headers中设置了含有中文的header,在微服务中的controller中获取header时会中文乱码 问号???
微服务控制台
可以看到含中文部分都是???
解决方法:
分别在过滤器重写请求 和 controller中解决
在过滤器中
String encode=null;
try {
encode = URLEncoder.encode(userJson, “UTF-8”);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
exchange.mutate().request(request);
exchange.getRequest().mutate().header(“userJson”, encode).build();
在controller中
String header = request.getHeader("userJson");
String userJson = URLDecoder.decode(header, StandardCharsets.UTF_8.toString());
问题解决: