如何使用python3.x正确编码url

时间:2018-11-07 10:16:34

标签: python-3.x

我在此问题上遇到了很多问题,但在编码时仍然遇到问题,对这个字符串进行urlencode的正确方法是什么?

这是我尝试过的方法,但/仍然随附

 import urllib.parse
 urllib.parse.quote('https://822ee.ngrok.io/?invoice_id=2323')

我想念什么?

1 个答案:

答案 0 :(得分:1)

我认为您需要将安全字符声明为空字符串,以便提供正确的结果:

import urllib.parse

print(urllib.parse.quote('https://82c732ee.ngrok.io/?invoice_id=2323', safe=''))

这将打印出来:

https%3A%2F%2F82c732ee.ngrok.io%2F%3Finvoice_id%3D2323

出于好奇,如果您使用以下代码在Java中尝试相同的操作:

public static void main(String[] args) throws IOException {
    String s = URLEncoder.encode("https://82c732ee.ngrok.io/?invoice_id=2323", "UTF-8");
    System.out.println(s);
}

这将打印出与上面相同的结果。

编辑:

不声明安全字符的另一种方法是使用quote_plus方法,例如他的评论中提到的Nikos M.

示例:

print(urllib.parse.quote_plus('https://82c732ee.ngrok.io/?invoice_id=2323'))