我期待

System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8"));

输出:
Hello%20World
(20是空格的ASCII十六进制代码)

但是,我得到的是:
Hello+World
我使用了错误的方法吗?我应该使用什么正确的方法?

最佳答案

这表现出预期。 URLEncoder实现了有关如何以HTML形式编码URL的HTML规范。

javadocs:



并从HTML Specification:



您将不得不更换它,例如:

System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));

09-07 20:06