我正在尝试对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

10-06 07:24