Java 重定向web容器中的URL编码,response.sendRedirect()

Java 重定向web容器中的URL编码,response.sendRedirect(),java,servlets,redirect,web,internationalization,Java,Servlets,Redirect,Web,Internationalization,我的问题是,在Java中,我有机会将用户重定向到其他地方,而其他地方是用户可定义的。代码如下所示: response.sendRedirectURL。 我的重点是变量redirectURL中表示的字符串。 我的理解是,指定response.setCharacterEncoding会影响写入响应编写器的内容,而不会影响sendRedirect内容。 在基于tomcat的容器中,通过在连接器上添加URIEncoding=,似乎可以处理URL路径为中文、简体中文、日文或非ascii字符但不是这样的情况

我的问题是,在Java中,我有机会将用户重定向到其他地方,而其他地方是用户可定义的。代码如下所示:

response.sendRedirectURL。 我的重点是变量redirectURL中表示的字符串。 我的理解是,指定response.setCharacterEncoding会影响写入响应编写器的内容,而不会影响sendRedirect内容。 在基于tomcat的容器中,通过在连接器上添加URIEncoding=,似乎可以处理URL路径为中文、简体中文、日文或非ascii字符但不是这样的情况。我的部分问题是为什么

在这里有很多关于使用URLEncode的回复。但在第4571346期中

Wyzard说不应该使用,而是

创建一个URI对象 通过toASCIIString创建正确的URL字符串。 在我的示例用例中,这可以很好地工作,尽管这段代码需要在每个response.sendRedirect之前执行,而response.sendRedirect有很多

随着越来越多的应用程序在全球范围内使用,我发现这个问题有效地解决了HTTPResponse方法sendRedirect的不足,因为它本身可能无法正常工作

我指的都是RFC3490,它处理应用程序中的国际化域名,它将toASCII讨论为两个操作之一,另一个是toUnicode

那么,为什么连接器上的URIEncoding=不应该处理这个问题呢?在路径国际化的情况下,有没有更好的方法来处理URL? 我只是认为,通过分离关注点的方式,这个问题是并且应该是一个容器问题,而不是应用程序问题。我希望这将提供一个讨论这个问题的论坛,不是HTML,不是表单,不是URL本身以外的任何东西