0

我需要将包含 url 的字符串发布到我能够对 url 进行编码的服务器,但这将对整个字符串进行编码,并且当获取此数据以在 android 中显示时,我只需要对 url 链接进行编码和解码。

mydomain/post.php?mesg=Hello%2Bhow%2Br%2Bu%250A%2BHttp%253A%252F%252Fwww.google.com%250A%250ATesting%2Burl

已编辑

我的代码

String postStr = "Hello how r u?
                  http://www.google.com"; // suppose user entered string like this way

Uri.Builder builder = new Uri.Builder()
    .scheme("http")
    .authority(domain)
    .path(pageName)
    .appendQueryParameter("mesg", URLEncoder.encode(postStr, "utf-8"))
String urlStr = builder.build().toString();

执行后得到这个结果

Hello+how+r+u%0A+Http%3A%2F%2Fwww.google.com%0A%0ATesting+url 

而实际结果要这样

Hello how r u?
http://www.google.com

Testing url

提前致谢

4

3 回答 3

1

尝试使用 Beloq 方式

您不应该对包含 URL 的整个字符串进行编码。只需对要编码和解码的部分进行编码。我认为下面是要走的路。试试看。虽然我不确定这是你要找的东西。

String name=URLEncoder.encode("Hello hw are you?")+"http://www.google.com"+URLEncoder.encode("Testing url");

希望它会以某种方式有所帮助。

于 2013-02-12T10:03:48.913 回答
1

尝试这个:

import android.net.Uri;
import android.net.Uri.Builder;

String reqUrl = "http://google.com"
Builder builder = Uri.parse(reqUrl).buildUpon();
builder.appendQueryParameter("mesg", "Value for mesg");
String finalUri = builder.build().toString();
于 2013-02-12T09:51:59.387 回答
0

构建分隔 url 和文本的动态字符串。例如,你可以这样做

String postStr = Hello how r u? %& http://www.google.com

如您所见,我使用了符号组合作为分隔符。

现在使用拆分字符串,

String[] values = postStr.split("%&");

您也可以使用 StringTokenizer 类!

希望这可以帮助!

于 2013-02-12T14:25:46.627 回答