【发布时间】:2011-01-27 10:16:27
【问题描述】:
我正在尝试读取图像 URL。如java文档中所述,我尝试通过
将URL转换为URIString imageURL = "http://www.shefinds.com/files/Christian-Louboutin-Décolleté-100-pumps.jpg";
URL url = new URL(imageURL);
url = new URI(url.getProtocol(), url.getHost(), url.getFile(), null).toURL();
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
我得到文件的 Java.io.FileNotFound 异常 http://www.shefinds.com/files/Christian-Louboutin-Décolleté-100-pumps.jpg
我做错了什么以及编码此 URL 的正确方法是什么?
更新:
我正在使用罗马阅读 RSS 提要。接受 BalusC 的建议,我打印了来自不同阶段的原始输入,看起来 ROME rss 解析器使用的是 ISO-8859-1 而不是 UTF-8。
【问题讨论】:
-
@sammichy:要消除 .java 源文件编码问题,请在创建字符串时使用 ASCII escapin:"...://www.shefinds.com /files/Christian-Louboutin-D\u00e9collet\u00e9-100-pumps.jpg"。请注意,您的 .java 源文件中的 'é' 变为 '\u00e9'。
-
@sammichy:您显示的也不是错误消息。你从哪里得到这个,你是怎么打印出来才知道它是 "...//www.shefinds.com/files/Christian-Louboutin-Décolleté-100-pumps.jpg" ?
-
@sammichy:值得一提的是:.java 文件没有与之关联的元数据,因此检测它们的编码并使其在混合环境中完美地工作是一个主要的痛苦Linux、OS X、Windows、各种IDEs环境。因此,在我编写指南的公司,.java 文件必须 只能是 ASCII,并且在构建时由脚本强制执行。
-
@WizardOfOdds - 抛出的异常是 java.io.filenotfound 异常。
标签: java url encoding character latin