gpt4 book ai didi

java - IDN.toASCII 协议(protocol)必须先删除吗?

转载 作者:行者123 更新时间:2023-12-02 03:31:37 25 4
gpt4 key购买 nike

我为 JSF 网页创建了一个 URL validator ,现在偶然发现了一个域问题,其中第一个单词(用点分隔)包含非 ASCII 字符。

我有以下有效网站网址http://testä.com。使用 IDN.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 还是我遗漏了某些内容。

解决方法

当我首先删除协议(protocol)时,它会起作用。

最佳答案

文档清楚地表明此方法仅适用于域名标签,因此需要删除该协议(protocol)。

A label is an individual part of a domain name. The original ToASCII operation, as defined in RFC 3490, only operates on a single label. This method can handle both label and entire domain name, by assuming that labels in a domain name are always separated by dots.

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

关于java - IDN.toASCII 协议(protocol)必须先删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38023397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com