gpt4 book ai didi

java - 使用汉字从 URL 中获取图像

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:07 25 4
gpt4 key购买 nike

我想从远程 URL 获取图像。

String url =  "http://見.香港/images/wonton.jpg";
String url2 = IDN.toUnicode(url);
BufferedImage bi = ImageIO.read(new URL(url2));
System.out.println(bi);

此代码总是失败

javax.imageio.IIOException: Can't get input stream from URL!
Caused by: java.net.UnknownHostException: 見.香港

我做错了什么?

最佳答案

仅对 URL 的主机部分进行编码,并确保您使用的是 IDN.toASCII() 而不是 IDN.toUnicode()

String fullUrl = "http://見.香港/images/wonton.jpg";
URL url = new URL(fullUrl);

url.getProtocol(); // "http"
url.getHost(); // "見.香港"
url.getPath(); // "/images/wonton.jpg"

String asciiHost = IDN.toASCII(url.getHost());
String validUrl = url.getProtocol() + "://" + asciiHost + url.getPath();
System.out.println(validUrl);
BufferedImage bi = ImageIO.read(new URL(validUrl));

控制台输出: http://xn--nw2a.xn--j6w193g/images/wonton.jpg

请注意,如果要包含空格等字符,您可能需要对 URI 的资源部分进行 URLEncode。

关于java - 使用汉字从 URL 中获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com