索引16处路径中的非法字符

Sri*_*san 36 java

我在RAD中收到以下错误:

java.net.URISyntaxException: Illegal character in path at index 16: file:/E:/Program Files/IBM/SDP/runtimes/base......
Run Code Online (Sandbox Code Playgroud)

你能否告诉我这是什么错误以及如何解决?

Jon*_*ust 51

索引16处有一个非法字符.我会说它不喜欢路径中的空间.您可以对百分比等特殊字符进行编码.在这种情况下,用%20替换它.

我上面链接的问题建议使用URLEncoder:

String thePath = "file://E:/Program Files/IBM/SDP/runtimes/base";
thePath = URLEncoder.encode(thePath, "UTF-8"); 
Run Code Online (Sandbox Code Playgroud)

  • 嗯...它确实不起作用:空格用加号代替,而不是用%20代替,而且所有斜线都被破坏了......见:http://stackoverflow.com/questions/4737841/urlencoder - 不是,能对转换空间字符 (12认同)
  • 不要使用John所写的URLEncoder,这只会使情况变得更糟。 (2认同)

Joh*_*ohn 23

我使用Bing Map API遇到了同样的事情.URLEncoder只是让事情变得更糟,但是一个replaceAll(" ","%20");伎俩.


cek*_*ock 9

你试过这个吗?

new File("<PATH OF YOUR FILE>").toURI().toString();
Run Code Online (Sandbox Code Playgroud)