我的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表单编码的实用程序类"......有没有其他方法可以做到这一点?
我创建一个RegExp对象(在JavaScript中)来测试数字的存在:
var test = new RegExp( '[0-9]', 'g' );
Run Code Online (Sandbox Code Playgroud)
我这样用它
console.log( test.test( '0' ) ); // true
console.log( test.test( '1' ) ); // false - why?
Run Code Online (Sandbox Code Playgroud)
这个输出更令人困惑:
console.log( test.test( '1' ) ); // true
console.log( test.test( '0' ) ); // false - why?
console.log( test.test( '1' ) ); // true
console.log( test.test( '2' ) ); // false - why?
console.log( test.test( '2' ) ); // true - correct, but why is this one true?
Run Code Online (Sandbox Code Playgroud)
如果我删除g限定符,它的行为与预期一致.
这是一个我认为是错误的错误,还是规范的一些特殊部分?是否g应该以这种方式使用限定符?(我正在为多个任务重复使用相同的表达式,因此根本没有限定符)