Java - 带重音的InetSocketAddress主机名

Dam*_*ien 6 java sockets host hostname diacritics

我遇到了与服务器建立连接的问题,该服务器的主机名中有一些重音符号(éèô...).

例如 :

String oUrl = "www.hôtel.fr";   
System.out.println(oUrl);
InetSocketAddress isa = new InetSocketAddress(oUrl.toString(), 80);
System.out.println(isa.isUnresolved());
Run Code Online (Sandbox Code Playgroud)

ISA永远不会被解决.它适用于www.google.fr.

我试图URLEncode主机(URLEncoder与UTF-8字符集,所以主机名是www.h%C3%B4tel.fr)没有结果.

有人有线索吗?我在网上找不到任何东西.

谢谢,抱歉我的英语.

Ste*_*han 4

域名中的元音变音、重音符号等必须通过punycode进行转换。在你的例子中,它最终会出现在http://www.xn--htel-vqa.fr/. 如果没有经过测试,IDN类可能会有所帮助。