如何防止Java 8/Tomcat 7对Response.sendRedirect上的URL路径进行URL编码

jrl*_*mx2 6 java redirect url-encoding tomcat7 java-8

我有一个完全本地化的网站,在URL路径中有一些字符,通过该Response.sendTemporaryRedirect方法获得HTML编码:

String toReturn = /*StringEscapeUtils.unescapeHtml4(redirect)*/ redirect + "?" + URLEncoder.encode(json, "UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=UTF-8");

java.net.URI location = new java.net.URI(toReturn);
return Response.temporaryRedirect(location).build();
Run Code Online (Sandbox Code Playgroud)

重定向正在获得404,因为"%C3%B1%C3%AD"URL片段被误解了.解码,看起来像这样:ñí.

我已经尝试过URLDecoder.decode(url, 'UTF-8'),StringEscapeUtils.escapeHtml4在重定向之前没有运气.代码工作正常.

为什么javax.ws.rs.core.Response.sendTemporaryRedirectURLEncoding URL路径?

use*_*577 0

只需将“Location”响应标头设置为您想要的字符串即可。当核心 api 就在那里时,看到人们与库进行斗争,这让我非常恼火。