Java 替换URL中的符号赢得';行不通
我试图通过从web服务器接收url并将其转换为位图图像来在android中显示图像,但由于符号%5C在其中,因此出现以下错误Java 替换URL中的符号赢得';行不通,java,android,http,replaceall,Java,Android,Http,Replaceall,我试图通过从web服务器接收url并将其转换为位图图像来在android中显示图像,但由于符号%5C在其中,因此出现以下错误 E/Error﹕ http:%5C/%5C/thumbs3.ebaystatic.com%5C/pict%5C/3007385805144040_5.jpg 我尝试了url2.replaceAll(“%5C”和“”)以去除符号,但这根本没有效果。我怎样才能摆脱它,这样我就有了一个有效的url。您要寻找的是一个称为url解码的url 请在此处阅读更多信息: 不要尝试手动替
E/Error﹕ http:%5C/%5C/thumbs3.ebaystatic.com%5C/pict%5C/3007385805144040_5.jpg
我尝试了
url2.replaceAll(“%5C”和“”)
以去除符号,但这根本没有效果。我怎样才能摆脱它,这样我就有了一个有效的url。您要寻找的是一个称为url解码的url
请在此处阅读更多信息:
不要尝试手动替换自己,使用库或为所有案例编写自己的:
Java1.7+:
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
String result = URLDecoder.decode(url, StandardCharsets.UTF_8.name());
现在尝试使用新URL作为您的路径。
如果URL有问题,那么这将对您有所帮助,否则问题来自将URL解码为位图时。您没有将调用replaceAll
的结果分配回str2
?字符串在Java中是不可变的-只需调用replaceAll
并忽略结果将没有任何效果。话虽如此,我还是想仔细研究一下为什么要首先获取这些数据——可能有更好的方法。您需要将结果分配给相同的字符串,如以下字符串newUrl=url.replaceAll(“%5C”,”);正在发布大致如下:)但在本例中,urldecode.decode()
只需将%5C
更改回Java中的'\\\'
@timrau,就像许多语言一样,第一个\\“转义”下面的字符,因此\\->\。
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
String result = URLDecoder.decode(url, StandardCharsets.UTF_8.name());
String url = "http:%5C/%5C/thumbs3.ebaystatic.com%5C/pict%5C/3007385805144040_5.jpg";
String newUrl = url.replaceAll("%5C", "");