首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java不支持IRI?

Java不支持IRI?
EN

Stack Overflow用户
提问于 2022-05-07 06:50:03
回答 1查看 78关注 0票数 2

示例代码:

代码语言:javascript
复制
java.net.URI.create("http://测试.com").getHost(); // return null
new java.net.URL("http://测试.com").getHost(); // return "测试.com"
  • 实际: URI不解析IRI
  • 预期:均返回"测试.com“

相关文件:

URI的javadoc中,有人提到它支持:

其他不在US字符集中的Unicode字符不是控制字符(根据Character.isISOControl方法),也不是空格字符(根据Character.isSpaceChar方法)(偏离RFC 2396,该字符仅限于US-ASCII)。

众所周知,

抽象地说,每个URL都是一个URI,但并不是每个URI都是URL。

因此,上述行为似乎不符合预期。

过去有一个RFE,但如果我理解正确的话,它似乎就是倒回

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-07 07:09:26

你是对的。此时Java并不正确地支持IRIs。

您发现的RFE表明,在Java 6中尝试实现IRIs。出于兼容性原因,它被回滚:

这一变化整合到野马b67作为CCC 6348622的一部分,造成不兼容问题,即6380332。我们需要重新检查术语“基于注册表”在java.net.URI规范中的使用情况,并记录不兼容问题。 将URI类回滚到Tiger版本,原因是兼容性原因。

最近,David Fuchs做了一些工作来分析这个问题,并提出了一些原型代码,但这似乎从2019年以来就没有进展了:

  • 更新JDK中对RFC 3986和RFC 3987的URI支持
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72150152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档