解析带有奇怪字符的URI

时间:2013-06-04 21:23:20

标签: java parsing uri

我无法相信Java YET中没有解决这个问题。

我见过Android: howto parse URL String with spaces to URI object?,第一个答案代表了我的问题。

我有一个包含文件位置的字符串。这可以是系统中的文件(/ ...或c:....)或URL(http:// .....,ftp:// ....等)如果文件是在系统或网址中指定预先知道

要区分我使用

new URI(string)

然后问:

uri.isAbsolute() 

这很好......但是猜猜看 - 如果路径有空格我会得到异常! (java.net.URISyntaxException)所以要解决这个问题,我所做的是初步的:

URLEncoder.encode(string, "UTF-8");

但现在,猜猜看 - 如果我收到“http:// ..”,所有特殊字符都会被替换,现在“isAbsolute()”不会将其识别为绝对URI。

当然我可以做:

 string.replace(" ", "%20")

但是......如果这个名字有一个与空间不同的奇怪字符,例如中文或法文字符,会发生什么?我是否必须自己更换它们?我想Java应该有更高层次的处理这种情况的东西。这是一个非常常见的问题,但我找不到合适的答案。

0 个答案:

没有答案