当前位置: 首页 > 面试题库 >

在URL和Windows文件名(Java)之间转换?

朱岳
2023-03-14
问题内容

在Java中,是否存在在URL和Windows文件名之间转换的标准/良好方法?

我正在尝试下载文件,但是我希望Windows文件名可以转换回原始文件名。请注意,URL的查询部分至关重要,因为我将下载仅在查询方面有所不同的不同页面。

我当前的hacky解决方案是用特定的字符串(例如“ QQ”)替换非法字符(例如“?”),但这会使转换回url的透明度降低。有没有更好的办法?


问题答案:

您可能比使用URLEncoder对URL进行编码还要糟糕:

String url = "http://172.0.0.1:80/foo/bar/baz.txt?black=white";
String filename = URLEncoder.encode(url, "UTF-8");
File file = new File(filename);

文件名成为合法的win32名称:

http%3A%2F%2F172.0.0.1%3A80%2Ffoo%2Fbar%2Fbaz.txt%3Fblack%3Dwhite

这是可逆的操作:

String original = URLDecoder.decode(filename, "UTF-8");


 类似资料:
  • 问题内容: 有没有一种方法可以将其转换为: 进入这个? 我正在使用以下代码,这些代码将返回.JAR存档或/ bin目录的完整路径。 问题是,返回a ,我需要一个正常的Windows文件名。我试过添加以下内容: 而这两个回报: 返回: 请注意应将转换为空格。 有没有快速简便的方法来做到这一点? 问题答案: 当前的建议(使用JDK 1.7+)是转换URL→URI→路径。因此,要将URL转换为File,

  • null 在列出的3个选项中,只有最后一个可以使用projectile(可能还有其他Emacs包)。但我需要能够访问/修改文件从Windows以及,所以这不是一个可行的选择。 有没有人为此找到好的解决方案?

  • 问题内容: 在WeasyPrint的公共API中,我接受HTML输入的文件名(除其他类型外)。任何与内置文件一起使用的文件名都可以使用,但是我需要将其转换为方案中的URL,然后再将其传递给。 (所有内容在内部都是URL形式。我需要为文档提供一个“基本URL”,以便使用来解析相对URL引用。) urllib.pathname2url是一个开始: 将路径名路径从路径的本地语法转换为URL的路径组件中使

  • 问题内容: 作为Java Web应用程序的开发人员,我什么时候需要使用URL重写,URL重写和转发之间有什么区别? 我在其他网站上搜索时,会得到相互矛盾的信息,具体取决于您与之交谈的对象,例如SEO,人们对这个问题的回答会有所不同。 在这两种情况下,AFAIK都不会向客户端(浏览器)通知更改,并且最终用户会在从服务器返回休假时看到与客户端最初请求的URL完全相同的URL。 请注意,这个问题是在Ja

  • 问题内容: 在Java 8和Java 8 之间进行转换的最佳方法是什么? 问题答案: 从转换为: 转换回来比较简单:

  • 问题内容: 这个问题已经在这里有了答案 : 如何将LocalDate转换为SQL Date Java? (3个答案) 5年前关闭。 在和(Java8)之间进行转换的正确方法是什么? 问题答案: 的Java 8版本(及更高版本)已内置对的支持,包括和。 转换为可以使用 并转换为: 时区: 该类型不存储时区信息,而存储。因此,使用上述转换时,结果取决于系统的默认时区(如注释中所指出)。 如果您不想依赖