You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中对特殊字符~进行URL编码?

解决urllib.parse.quote不编码~的问题

要让~被编码成%7E,直接用quote默认逻辑做不到——因为根据URL规范,~属于无保留字符,urllib.parse.quote会始终保留_.-~这几个字符,哪怕修改safe参数也不会编码它们。

给你两种可行的解决办法:

方法一:编码后手动替换

先通过quote处理其他需要编码的字符,再把~替换成%7E:

from urllib.parse import quote

input_string = 'https://bla/ble:bli~'
url_encoded = quote(input_string).replace('~', '%7E')
print(url_encoded)  # 输出: https%3A//bla/ble%3Abli%7E

方法二:自定义编码函数

如果需要频繁处理这类场景,可以写个小函数,手动控制所有字符的编码逻辑:

from urllib.parse import quote

def quote_with_tilde(s):
    # 先编码除~外的字符,再替换~
    return quote(s).replace('~', '%7E')

input_string = 'https://bla/ble:bli~'
print(quote_with_tilde(input_string))  # 输出: https%3A//bla/ble%3Abli%7E

第一种方法最简单直接,完全能满足你的需求。

内容的提问来源于stack exchange,提问作者Stamatis Tiniakos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:32:10