您如何在Android中编码URL ?
我以为是这样的:
final String encodedURL = URLEncoder.encode(urlAsString, "UTF-8");
URL url = new URL(encodedURL);
如果我做了上述情况, http://在urlAsString被替换http%3A%2F%2F在encodedURL ,然后我得到一个java.net.MalformedURLException当我使用的URL。
#1楼
对于android,我将使用String android.net.Uri.encode(String s)
使用UTF-8方案将给定字符串中的字符编码为'%'转义的八位字节。 保留字母(“ AZ”,“ az”),数字(“ 0-9”)和未保留的字符(“ _- !.〜'()*”)完整无缺。 编码所有其他字符。
例/
String urlEncoded = "http://stackoverflow.com/search?q=" + Uri.encode(query);
#2楼
你也可以用这个
private static final String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%";
String urlEncoded = Uri.encode(path, ALLOWED_URI_CHARS);
这是最简单的方法
#3楼
try {
query = URLEncoder.encode(que