java – 为什么URL没有完全解码?
发布时间:2020-12-15 04:20:53 所属栏目:Java 来源:网络整理
导读:我正在写一个 java程序,我的url需要解码,我正在使用 URLDecoder.decode(url,"UTF-8") 实现它的方法.但遗憾的是它并没有完全解码.例如.上面的方法解码= to =,+ to但它没有解码几个字符,如:/即使在解码后仍保持不变.请告诉我,如果我遗失了什么. 解决方法 首先
我正在写一个
java程序,我的url需要解码,我正在使用
URLDecoder.decode(url,"UTF-8") 实现它的方法.但遗憾的是它并没有完全解码.例如.上面的方法解码= to =,+ to但它没有解码几个字符,如:/即使在解码后仍保持不变.请告诉我,如果我遗失了什么. 解决方法
首先,一切都按预期工作.您的问题是,输入字符串被编码两次.所以简单地解码两次.
例: >输入:%3A 码: String input = "40.2%2522%26url%3Dhttp%253A%252F%252Fr1"; String output1 = URLDecoder.decode(input,"UTF-8"); String output2 = URLDecoder.decode(output1,"UTF-8"); System.out.println(input); System.out.println(output1); System.out.println(output2); 输出: 40.2%2522%26url%3Dhttp%253A%252F%252Fr1 40.2%22&url=http%3A%2F%2Fr1 40.2"&url=http://r1 注意: String input = "40.2%2522%26url%3Dhttp%253A%252F%252Fr1"; String output = input; do { input = output; output = URLDecoder.decode(input,"UTF-8"); } while (!input.equals(output)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |