我不确定我是否完全理解 URI 对象以正确执行此操作。我希望能够将字符串转换为 url 编码的字符串。例如,我有一个充当文件处理程序的 servlet,我需要在 header 中指定文件名 -
response.setHeader("Content-disposition", "attachment;filename=" + new URI(filename).toUrl());
正如预期的那样,我收到了 URISyntaxException
,因为我正在编码的字符串不是正确的 URI 形式。
如何编码字符串而不是 URL?
我无法使用已弃用的 URLEncoder 获得所需的结果,因为它将“”替换为“+”而不是“%20”。
提前致谢!
最佳答案
URLEncoder 不适用于 URL,奇怪的是,它实际上适用于 URL 参数以及其他需要 application/x-www-form-urlencoded MIME 编码的内容。我发现对任意字符串 's' 进行 URL 编码的最简单方法是 new URI(null, s, null).toASCIIString()
。
关于java - URL 编码字符串不是有效的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230693/