我的问题是,在Java中,我有机会将用户重定向到其他地方,其他地方是用户可定义的。代码如下:
response.sendRedirect(redirectURL)
。
我的重点是变量redirectURL中表示的字符串。
我的理解是这样,指定response.setCharacterEncoding会影响写入响应编写器的内容,而不会影响sendRedirect内容。
通过在连接器上添加URIEncoding =,在基于tomcat的容器中,应该处理URL的路径,简体中文或日语,或非ascii字符,但事实并非如此。我的部分问题是为什么。
这里有很多回复说明使用URLEncode。但是在问题4571346中 how to encode URL to avoid special characters in java
Wyzard表示不应该使用,而是
在我的for-instance用例中,这个工作正常,尽管这个代码需要在每个response.sendRedirect()
之前执行,这很多。
随着越来越多的应用程序在全球范围内使用,我发现这个问题有效地使得直接的HTTPResponse方法sendRedirect变得不充分,因为它本身可能无法正常工作。
我全部参考RFC3490,它处理应用程序中的国际化域名,它讨论了toASCII作为两个操作之一,另一个是toUnicode。
那么,为什么URIEncoding =在连接器上,而不是处理它,是否应该,并且是否有更优选的方式来处理路径被国际化的URL? 我只是相信,通过分离关注点,这个问题应该是一个容器问题,而不是应用程序问题。我希望这将提供一个讨论这个问题的论坛,而不是HTML,而不是表格,而不是URL本身。