【问题标题】:java - IDN.toASCII must protocol be removed before?java - 必须先删除 IDN.toASCII 协议吗?
【发布时间】:2016-06-24 23:18:51
【问题描述】:

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

我有以下有效的网站 URL http://testä.com。使用IDN.toASCII() 将其转换为微不足道的代码会创建无效的网址: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 还是我遗漏了什么。

解决方法

当我一开始删除协议时它会起作用。

【问题讨论】:

    标签: java url url-validation punycode


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的澄清
    猜你喜欢
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 2023-03-23
    • 2022-01-25
    • 1970-01-01
    • 2013-10-03
    • 2013-05-28
    • 2017-01-13
    相关资源
    最近更新 更多