我正在尝试对URL参数进行编码。
例如当我编码时
qOddENxeLxL + 13drGKYUgA == \ n
使用URL Encoder tool
它提供以下输出,当我请求API时可以使用
qOddENxeLxL%2B13drGKYUgA%3D%3D%5Cn
但是当我使用URLEncoder.encode("qOddENxeLxL+13drGKYUgA==\n", "UTF-8");
从Java代码(Android)编码URL时
它给我以下结果
qOddENxeLxL%252B13drGKYUgA%253D%253D%250A
我也尝试使用其他编码方案,但无法产生相同的结果。
最佳答案
问题是因为\n
被解释为换行符。 Java将字符串内的\
视为开始escape sequence。
为了获得与您提供的URL中相同的内容,您必须对其进行转义。
System.out.println(URLEncoder.encode("qOddENxeLxL+13drGKYUgA==\\n", "UTF-8"));
这将提供相同的结果:
qOddENxeLxL%2B13drGKYUgA%3D%3D%5Cn