我有一个完全本地化的网站,在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();
重定向正在获得404,因为"%C3%B1%C3%AD"
URL片段被误解了。解码,它看起来像这样:ñí
。
我在重定向之前尝试过URLDecoder.decode(url, 'UTF-8')
和StringEscapeUtils.escapeHtml4
而没有运气。代码工作正常。
为什么javax.ws.rs.core.Response.sendTemporaryRedirect
URLEncoding URL路径?
只需将“Location”响应标头设置为您想要的字符串即可。当核心api就在那里时,看到人们与图书馆作战,这让我非常恼火。