我期待
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"));