Java HTML和正斜杠(/)以及%2F中的href?
我正在生成一个HTML页面,列出Java目录中的文件。每个文件名都放置在指向该文件的链接中。由于目录名和文件名包含非ASCII字符和空格,因此我使用以下方法对它们进行编码Java HTML和正斜杠(/)以及%2F中的href?,java,html,Java,Html,我正在生成一个HTML页面,列出Java目录中的文件。每个文件名都放置在指向该文件的链接中。由于目录名和文件名包含非ASCII字符和空格,因此我使用以下方法对它们进行编码 URLEncoder.encode(str, "UTF-8").replace("+", "%20"); 对于每个文件,我可以将完整目录放入的href,或者将其附加到的href。上述方法将/转换为%2F。但是我看到href包含/ 所以 我应该将/替换为%2F还是 我应该保持原样还是 无论是/还是%2F 如果答案是2,我应该使
URLEncoder.encode(str, "UTF-8").replace("+", "%20");
对于每个文件,我可以将完整目录放入
的href
,或者将其附加到
的href
。上述方法将/
转换为%2F
。但是我看到href
包含/
所以
/
替换为%2F
还是/
还是%2F
如果答案是2,我应该使用什么Java方法来代替URLEncoder.encode(),因为它将
/
替换为%2F
,这取决于/
是作为路径分隔符还是作为查询的一部分。它是文件路径的一部分。例如,如果请求的页面为“http:///mysite/a/b/c,并且“a/b/c”目录包含c1.txt、c2.txt…,基可以是“/a/b/c”,文件链接可以是“c1.txt”,或者没有基,文件链接可以是“/a/b/c/c1.txt”。那么您不应该对其进行编码。这取决于/
是否用作路径分隔符,或作为查询的一部分。它是文件路径的一部分。例如,如果请求的页面为“http:///mysite/a/b/c,而“a/b/c”目录中包含c1.txt、c2.txt…,或者基可以是“/a/b/c”,文件链接可以是“c1.txt”,或者没有基,文件链接可以是“/a/b/c/c1.txt”。那么您不应该对其进行编码。