我在向servlet发送Unicode-URL的重定向时遇到了问题。
例如,考虑以下土耳其语中的url:
如果将其粘贴到浏览器的地址栏中,则可以正常工作。但是,当您请求时,浏览器会将其转换为
如果我有带有UTF8特殊字符的第一个URL,并且成功从数据库中获取它。 我想将我的servlet重定向到该URL。
然而,当我只是按照头文件要求执行response.sendRedirect(url);
时,它会将我重定向到www.t%1frk%e7eisimtescil.com
我甚至尝试过response.sendRedirect("http://www.t\u011Frk\u00E7eisimtescil.com");
(内联编码),但响应完全相同。
也许,如果我在标题中获得türkçeisimtescil.com,浏览器将将其转换为xn--..
格式,然后它就会成功。
我无法弄清楚编码何时出错。 感谢任何帮助。
http://xn--
用于http://A.türkçe
或http://w.türkçe
,但对于http://türkçeblabla...
却生成了xn--http://
,这让我非常苦恼。 - ahmet alp balkan`String idn = IDN.toASCII("http://türkçeisimtescil.com"); System.out.println(idn);`
生成了错误的xn--http:// which
。我应该只转换域名,而不会在authentication:data@and:port/orFile?plus=querystrings#and_refs
中丢失任何内容。 - ahmet alp balkan