我的Java独立应用程序从用户获取一个URL(指向一个文件),我需要点击它并下载它.我面临的问题是我无法正确编码HTTP URL地址......
例:
URL: http://search.barnesandnoble.com/booksearch/first book.pdf
java.net.URLEncoder.encode(url.toString(), "ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)
回报我:
http%3A%2F%2Fsearch.barnesandnoble.com%2Fbooksearch%2Ffirst+book.pdf
Run Code Online (Sandbox Code Playgroud)
但是,我想要的是
http://search.barnesandnoble.com/booksearch/first%20book.pdf
Run Code Online (Sandbox Code Playgroud)
(空间由%20取代)
我猜URLEncoder不是为了编码HTTP URL而设计的... JavaDoc说"用于HTML表单编码的实用程序类"......有没有其他方法可以做到这一点?
我期待着
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
输出:
Hello%20World
(20是空格的ASCII十六进制代码)
但是,我得到的是:
Hello+World
我使用了错误的方法吗?我应该使用的正确方法是什么?
我想从一个java.net.URI对象中获取一个对象String.该字符串有一些字符需要用它们的百分比转义序列替换.但是当我使用URLEncoder对UTF-8编码的字符串进行编码时,即使/被替换为它们的转义序列.
如何从String对象获取有效的编码URL?
http://www.google.com?q=a b给出 http%3A%2F%2www.google.com ...而我希望输出为 http://www.google.com?q=a% 20B
有人可以告诉我如何实现这一目标.
我试图在Android应用程序中执行此操作.所以我可以访问有限数量的库.