On Jan 15, 2010, at 6:48 PM, Jesse Glick wrote:
Matt Benson wrote:
Java 5 blows up when call toURI() against a URL with a space
included.
Which is correct; such a URL is invalid:
$ jrunscript
js> new java.net.URL("file:/tmp/foo bar").toURI()
script error: sun.org.mozilla.javascript.internal.WrappedException:
Wrapped java.net.URISyntaxException: Illegal character in path at
index 13: file:/tmp/foo bar (<STDIN>#1) in <STDIN> at line number 1
js> new java.net.URL("file:/tmp/foo%20bar").toURI()
file:/tmp/foo%20bar
Maybe I'm missing the purpose of EncodeURLEvaluator, but where
would you get a bogus URL like that from to begin with? Surely not
from <makeurl> on a file, which ought to escape spaces in
filenames. I assumed that the purpose was just to encode non-ASCII
characters, for which toURI is fine:
The main idea here is to allow folk to use URLs containing e.g.
spaces that their browser will accept and silently convert for them.
js> new java.net.URL("file:/tmp/foočbar").toURI().toASCIIString()
file:/tmp/foo%C4%8Dbar
Or are you trying to encode path sequences (rather than complete
URLs)? But then there is an easier way, without using URL at all:
js> new java.net.URI(null, "foo bar", null).rawPath
foo%20bar
Anyway does this belong in Ant 1.8.0 so late in the release cycle?
Ah, but it's not in Ant--it's in the props antlib! -Matt
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org