java - 在 Java 中访问带有重音符号的 URL 不起作用

标签 java url utf-8 url-encoding

以下代码为我检索 URL 内容并将其保存到文件中:

URI obj_uri = new URI(uri);

URLConnection connection = obj_uri.toURL().openConnection();
connection.connect();

byte[] buffer = new byte[1024];
String filename = "temp";

try (InputStream in = connection.getInputStream(); FileOutputStream writer = new FileOutputStream( new File(filename) )) {
    int len;
    while ( (len = in.read(buffer)) != -1) {
        writer.write( buffer, 0, len );
    }
}

return filename;

我的问题是,当此 URI 具有不同的符号时,例如“http://dbpedia.org/resource/Brasília”,则无法检索内容。 DBpedia 使用的 URL 编码是 UTF-8,即使使用 URLEncoder.encode( url, "UTF-8") 我的代码也无法工作。但我的代码不会生成错误或异常,生成的文件(“temp”)以任何信息结尾(除了“”和“”)。

那么,如果 URI 正确并且即使使用其符号也可以访问,为什么我无法检索其内容并将其保存到文件中?

感谢您的帮助!

最佳答案

关于java - 在 Java 中访问带有重音符号的 URL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17667500/

相关文章:

php - 如何在 URL 中隐藏文件路径?

java - 意外的 AST 节点 : like in spring data jpa

java - onConfigurationChanged 无法正常工作

php - 从带有异常的 url 中删除 .php (htaccess)

regex - 使用sed,正则表达式如何匹配汉字?

encoding - 如何在 ColdFusion 中创建 xml 文件时转换 utf-8 格式的特殊字符

javascript - 根据 UTF-8 十六进制代码处理字符

java - 检查 map 中的所有值是否为空

java - 服务器返回 HTTP 响应代码 : 505 for URL

javascript - angularjs 指定字符url之前的子字符串