Android中的UTF-8转换?

5

我遇到了一个问题,需要调用Web服务。我只需要生成一个UTF-8编码的URL字符串。由于参数可能包含空格,因此我使用下面的代码将其编码为utf-8:

public String encodeUTF(String str) {

        try {
            byte[] utf8Bytes = str.getBytes("UTF-8");

            String encodedStr = new String(utf8Bytes, "UTF-8");

            return encodedStr;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return str;
    }

但是我仍然得到相同的值。因此,在调用服务时,我会遇到非法参数异常。有任何想法吗?


“对URL进行UTF-8编码,因为它可能包含空格”?您确定这就是您想要做的吗?UTF-8空格与ASCII空格相同。难道您不想进行URL编码吗? - deceze
@deceze:是的,这就是我想要做的。 - Praveen
@Praveen,你是怎么解决这个问题的? - frayab
3个回答

11

使用UTF编码,请使用以下代码 -> URLEncoder.encode(string, "UTF-8");

另外,您需要更改空格 -> string.replace(" ", "%20");


6

试一试:

URLEncoder.encode(str, "UTF-8");

现在我不再收到非法参数异常了,但我收到了HTTP响应异常:错误的请求。你有什么想法吗? - Praveen

2
你可以使用这个:
import java.net.URLEncoder;

class{
    String TEXT;

    TEXT= URLEncoder.encode(TEXT, "UTF-8");

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接