当前位置: 首页 > 面试题库 >

java.net.URI阻塞了主机部分中的特殊字符

邓鸿雪
2023-03-14
问题内容

我有一个类似下面的URI字符串:

http://www.christlichepartei%F6sterreichs.at/steiermark/

我正在使用此字符串创建java.lang.URI实例,该实例成功完成,但是当我要检索主机时,它将返回null。如果我完全按照上面的显示输入,Opera和Firefox也会阻塞该URL。但是,如果URI类无效,则它不应该抛出URISyntaxException吗?那我怎么能发现URI是非法的呢?

当我使用URLDecoder解码字符串时,它的行为也相同,这将产生

http:// www.christlicheparteiösterreichs.at/ steiermark /

现在,这已被Opera和Firefox接受,但是java.net.URI仍然不喜欢它。如何处理这样的URL?

谢谢


问题答案:

Java
6具有IDN使用国际化域名的类。因此,以下代码生成了带有编码主机名的URI:

URI u = new URI("http://" + IDN.toASCII("www.christlicheparteiösterreichs.at") + "/steiermark/");


 类似资料:
  • 是什么让一个字符变得特殊呢?如果一个字符不仅具有字面意义,而且具有元意(meta-meaning),我们就称它为特殊字符。特殊字符同命令和关键词(keywords)一样,是bash脚本的组成部分。 你在脚本或其他地方都能够找到特殊字符。 # 注释符。如果一行脚本的开头是#(除了#!),那么代表这一行是注释,不会被执行。 # 这是一行注释 注释也可能会在一行命令结束之后出现。 echo "A com

  • 在我的例子中,我不能阻止集群4分钟(事实上也不是一秒钟)。 是否真的是IMAP.LoadAll阻止谓词查询? 可以将imap配置为非阻塞,或者存在imap.LoadAll()的非阻塞替代方案。 我正在尝试使用HC3.7.2,它有2个节点和Java8。

  • 本文向大家介绍如何在R中的特殊字符后删除部分字符串?,包括了如何在R中的特殊字符后删除部分字符串?的使用技巧和注意事项,需要的朋友参考一下 有时我们不需要整个字符串来进行分析,尤其是当它使分析变得复杂或毫无意义时。在这种情况下,可以从完整的字符串中删除我们认为不必要的字符串部分。例如,假设我们有一个字符串ID:00001-1,但我们不想在该字符串中使用-1,那么我们可以将其删除,这可以通过gsub

  • 本文向大家介绍了解节点中代码执行的阻塞和解除阻塞,包括了了解节点中代码执行的阻塞和解除阻塞的使用技巧和注意事项,需要的朋友参考一下 现在,我们在fs模块中具有文件写入功能writeFileSync,如下所示- 同步表示已同步。这是一个阻塞代码示例。一旦文件写入完成,则仅对其余文件执行代码。上面的代码比较简单,但是如果我们进行大量的文件处理操作,将会导致应用性能下降。 这种代码执行方式将减慢其他请求

  • 问题内容: 为什么有人会喜欢阻止写而不是非阻止写?我的理解是,仅当您想确保写方法返回后,另一端获得了TCP数据包时,才希望阻止写操作,但是我什至不知道这是可能的。您将必须刷新,而刷新则必须刷新 底层操作系统的写套接字缓冲区 。那么,无阻塞套接字写是否有任何缺点?就性能而言,拥有较大的底层写套接字是否会缓冲一个不好的主意?我的理解是,底层套接字写缓冲区越小,当底层套接字缓冲区已满且isWritabl

  • 我正处于重新编码一个正式使用iso-8859-1字符编码的站点的最后阶段,但现在整个站点都是UTF-8。 问题是mailto href链接的主题部分在使用特殊字符时不适用于Outlook。我得到了通常的乱码字符表示,这表明当单击链接并在Outlook中弹出新邮件窗口时存在明显的字符编码问题。 我尝试了rawurlencode()来解决这个问题,但这似乎不适用于Outlook。。。 因此,Outlo