java - URL 编码字符串不是有效的 URI

标签 java url-encoding

我不确定我是否完全理解 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/

相关文章:

c++ - QUrl toPercentEncoding() 小写十六进制

http - 为文件大小选择什么 application/x-www-form-urlencoded/multipart/form-data 以 GB 为单位?

android - Retrofit2 替换查询参数

html - 我需要一个 iOS 工具来编码 HTML?

asp.net - asp .net查询字符串编解码

java正则表达式匹配摩尔斯电码

java - 我在 iText 中的希伯来语文本是左对齐的

java - 是否可以使用字符串的内容来转换对象?

java - Maven 中的 Elasticsearch "Client only"依赖项

java - 尝试显示 ArrayList 的内容。获取 [Ljava.lang.String;@232204a1