私はこのようにFacebookからURLを取得しました:
http:\/\/a6.sphotos.ak.fbcdn.net\/hphotos-ak-snc7\/s2048x2048\/582167_359167994154900_1489271360_n.jpg
奇妙に見えますが、それはよく知られている標準の 1 つだと思いますが、Google で答えが見つかりません。
そこから通常のURLを取得する方法を教えてください。
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);