加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在java URI的密码中处理“@”?

发布时间:2020-12-15 02:09:24 所属栏目:Java 来源:网络整理
导读:我有一个URL“ssh:// root:zstackqwe:!@#172.16.36.184”,其中包含密码部分中的“@”和“:”.我使用 java.net.URI来包装字符串,如: URI u1 = new URI("ssh://root:zstackqwe:!@#@172.16.36.184/");System.out.println(u1.getAuthority());System.out.p
我有一个URL“ssh:// root:zstackqwe:!@#172.16.36.184”,其中包含密码部分中的“@”和“:”.我使用 java.net.URI来包装字符串,如:

URI u1 = new URI("ssh://root:zstackqwe:!@#@172.16.36.184/");
System.out.println(u1.getAuthority());
System.out.println(u1.getHost());

输出是:

root:zstackqwe:!@
null

当主机部分返回null时,权限部分是正确的.应该如何正确处理这些特殊的字符?

更新:

字符串“ssh:// root:zstackqwe:!@#@ 172.16.36.184”是一个没有任何编码的原始字符串,从API传递到我的应用程序.我无法使用UIR(字符串)以外的构造函数.所以我正在寻找一种方法来处理原始字符串,使其与jave.net.URI一起使用.

解决方法

如果它是URI使用百分比编码.

URI u1 = new URI("ssh://root:zstackqwe%3a!%40%23@172.16.36.184/");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读