首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URISyntaxException:无效的% sequence

URISyntaxException:无效的% sequence
EN

Stack Overflow用户
提问于 2017-12-08 14:51:30
回答 1查看 218关注 0票数 0

我是IPv6的新手,当我尝试使用IPv6创建URI时,我遇到了这个异常。完整的例外是

代码语言:javascript
复制
java.net.URISyntaxException: Invalid % sequence: %wl in authority at index 32: tcp://[fe80::ceb8:a8ff:fe23:5b84%wlan0]:1883
at libcore.net.UriCodec.validate(UriCodec.java:58)
at java.net.URI.parseURI(URI.java:394)
at java.net.URI.<init>(URI.java:204)

我使用的代码如下所示

代码语言:javascript
复制
String ipv6 = "tcp://[fe80::ceb8:a8ff:fe23:5b84%wlan0]:1883";
URI uri = new URI(ipv6);

SocketAddress sockaddr = new InetSocketAddress(InetAddress.getByName(uri.getHost()), 1883);
Socket socket = new Socket();
socket.connect(sockaddr);

上述代码在运行安卓7.1.1的三星Galaxy S5上运行无一例外,但在运行安卓5和6的华硕Zenfone GoTV和安卓模拟器上却无法运行。

有人知道为什么吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-12-08 22:46:54

%字符是URL中的特殊字符,需要进行转义。实际上,%是转义字符。您可以作为%25对其进行转义

代码语言:javascript
复制
String ipv6 = "tcp://[fe80::ceb8:a8ff:fe23:5b84%25wlan0]:1883";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47709142

复制
相关文章

相似问题

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