我看到java.net.URLDecoder.decode(String)
在6中已经被弃用。
我有以下字符串:
String url ="http://172.20.4.60/jsfweb/cat/%D7%9C%D7%97%D7%9E%D7%99%D7%9D_%D7%A8%D7%92%D7%99%D7%9C%D7%99%D7%9"
我应该如何在Java 6中对其进行解码?
我看到java.net.URLDecoder.decode(String)
在6中已经被弃用。
我有以下字符串:
String url ="http://172.20.4.60/jsfweb/cat/%D7%9C%D7%97%D7%9E%D7%99%D7%9D_%D7%A8%D7%92%D7%99%D7%9C%D7%99%D7%9"
我应该如何在Java 6中对其进行解码?
URLDecoder
页面上的信息:
注意:万维网联盟建议使用UTF-8。否则可能会引入不兼容性。
以下内容适用于您:
java.net.URLDecoder.decode(url, "UTF-8");
请参见下面Draemon的答案。application/x-www-form-urlencoded
是指用于URL的编码方式,而由URLDecoder
指定的详细规则清楚地表明它完全可以用于解码URL。因此,使用URLDecoder
更简单、更快速。我建议您取消对这个答案的删除标记。 - Lawrence Doldecode(String)
方法已被弃用,应该使用decode(String, String)
方法来显式设置字符编码以进行解码。
System.out.println(String.format("Decoded URI: '%s'", new URI(url).getPath()));
String fileName = "Map%20of%20All%20projects.pdf";
URI uri = new URI(null, null, fileName, null);
System.out.println(String.format("Not decoded URI *WTF?!?*: '%s'", uri.getPath()));
String fileName2 = "Map of All projects.pdf";
URI uri2 = new URI(null, null, fileName2, null);
System.out.println(String.format("Encoded URI: '%s'", uri2.toASCIIString()));
application/x-www-form-urlencoded
”这种媒体类型是指用于URL编码的方式,而由URLDecoder
指定的详细规则清楚地表明它完全可以用于解码URL。因此,使用URLDecoder
更简单、可能也更快。 - Lawrence Dol