我有一个来自 facebook 的网址,如下所示:
http:\/\/a6.sphotos.ak.fbcdn.net\/hphotos-ak-snc7\/s2048x2048\/582167_359167994154900_1489271360_n.jpg
它看起来很奇怪,我想这是众所周知的标准之一,但我没有在谷歌中找到答案。
你能说我如何从中获得正常的网址吗?
String newString = replaceSample.replace("\\/", "/");
那是因为字符串被转义了
简单地说,你可以做的是:
replaceSample.replace("\", "" );
试试这个
如果您在*.html
文件中找到此字符串,则这是手动使任何标准 URL 处理无法使用该 URL 的结果。这不是一个正确的 URL。这不是任何标准转义的结果。
另一方面:如果你在一些源代码中找到了这个字符串(虽然不是 Java),那么它\/
可能会在编译时被替换为纯文本/
,如下面的 C 示例所示:
#include <stdlib.h>
#include <stdio.h>
void main(){
char *cp = "http:\/\/a6.sphotos.ak.fbcdn.net\/hphotos-ak-snc7\/s2048x2048\/582167_359167994154900_1489271360_n.jpg";
printf("%s\n", cp);
}
输出是:
http://a6.sphotos.ak.fbcdn.net/hphotos-ak-snc7/s2048x2048/582167_359167994154900_1489271360_n.jpg
在Java中,编译器会抱怨“无效的转义序列”,甚至不会编译。
那是因为它被逃脱了,你必须取消它
String url="http:\/\/a6.sphotos.ak.fbcdn.net\/hphotos-ak-snc7\/s2048x2048\/582167_359167994154900_1489271360_n.jpg";
url=URLDecoder.decode(url);