我在此问题上遇到了很多问题,但在编码时仍然遇到问题,对这个字符串进行urlencode的正确方法是什么?
这是我尝试过的方法,但/
仍然随附
import urllib.parse
urllib.parse.quote('https://822ee.ngrok.io/?invoice_id=2323')
我想念什么?
答案 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'))