0

我为我的 JSF 网页创建了一个 URL 验证器,现在偶然发现了第一个单词(由点分隔)包含非 ASCII 字符的域的问题。

我有以下有效的网站网址http://testä.comIDN.toASCII()使用创建无效的 url:将其转换为微不足道的代码xn--http://test-v8a.com

不应该http://xn--test-ooa.com/

我还在德国de域管理器 DENIC 上检查了它,它显示了相同的无效 URL 结果。

https://www.denic.de/service/tools/idn-web-converter/

这是 Java/RFC 中的 BUG 还是我遗漏了什么。

解决方法

当我首先删除协议时,它可以工作。

4

1 回答 1

2

文档很清楚,这种方法只对域名标签起作用,所以是的,需要删除协议。

标签是域名的独立部分。RFC 3490 中定义的原始 ToASCII 操作仅对单个标签进行操作。 通过假设域名中的标签始终由点分隔,此方法可以处理标签和整个域名。

链接到 Javadoc:https ://docs.oracle.com/javase/8/docs/api/java/net/IDN.html#toASCII-java.lang.String-int-

于 2016-06-25T01:22:08.033 回答