在一个链接中,我有{
和}
字符。在 chrome/ff (即?)中,当我单击该链接时,它会替换{
为%7B
和。不幸的是,在歌剧中它没有。如果我的链接,然后成为其他浏览器(然后我得到一个 404 @ 那个资源)。因此,当我单击歌剧中的链接时,我得到. 我很困惑:}
%7D
URLEncoder.encode
%7B
%257B
java.lang.IllegalArgumentException: Illegal character in path at index
- 为什么歌剧不编码
{
and}
? - 为什么要抛出异常?为什么不直接对 URL 进行编码并继续?
- 如何在不破坏其他浏览器中的链接(带额外编码)的情况下解决这个问题?
编辑:我们正在使用jersey,正如堆栈跟踪中所说:
java.lang.IllegalArgumentException: Illegal character in path at index
java.net.URI.create(URI.java:859)
javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:95)
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:879)
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:843)
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:804)