我使用以下代码在默认浏览器中显示NSE索引.
String downloadURL = "http://in.finance.yahoo.com/q;_ylt=AkieA" +
"_4_rXXRBh2SH7_U3kXyULlG;_ylu=X3oDMTE1Nmc5cjBnBHBvcwMyBHNlY" +
"wNmb290ZXIteWZpbmFuY2UEc2xrA25pZnR5NTA-?s=^NSEI";
java.awt.Desktop myNewBrowserDesktop = java.awt.Desktop.getDesktop();
java.net.URI myNewLocation = new java.net.URI(downloadURL);
myNewBrowserDesktop.browse(myNewLocation);
Run Code Online (Sandbox Code Playgroud)
提到的URL已从雅虎网站本身复制.但是,当我运行代码时,我收到如下错误:
java.net.URISyntaxException:索引140处的查询中的非法字符:http: //in.finance.yahoo.com/q;_ylt=AkieA_4_rXXRBh2SH7_U3kXyULlG;_ylu=X3oDMTE1Nmc5cjBnBHBvcwMyBHNlYwNmb290ZXIteWZpbmFuY2UEc2xrA25pZnR5NTA-?s= ^ NSEI
我不知道出了什么问题; 我已经成功地与其他网址做了同样的事情.请帮忙.
根据这个链接:
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm Caret("^")属于不安全类别.
"不安全的字符"为什么:由于各种原因,某些字符会出现在URL中被误解的可能性.这些字符也应始终进行编码.
更改^为%5E后,它可以正常工作.
现在,如果您从浏览器中复制URL并将其放在另一个浏览器中,那么它将起作用.我认为浏览器内部负责special人物.但是在java中,java.net.URL它应该与独立和控制台应用程序一起使用,并且在不同的平台上也是如此,因此,开发人员有责任处理编码special字符.
谷歌基于Java的URL编码器.
| 归档时间: |
|
| 查看次数: |
2990 次 |
| 最近记录: |