我正在尝试将包含“-”(减号)符号的字符串编码为 iso8859-15,它将按原样返回字符串。例如:
str="abc-def"
预期输出为
abc%2Ddef
有没有办法做到这一点?对不起,如果我的问题是错误的。
我正在尝试将包含“-”(减号)符号的字符串编码为 iso8859-15,它将按原样返回字符串。例如:
str="abc-def"
预期输出为
abc%2Ddef
有没有办法做到这一点?对不起,如果我的问题是错误的。
是的。
from urllib.parse import quote
st = "abc-def"
encoded = quote(st)
您的输出示例表明您正在寻找url encoding,而不是 Latin-1。
urllib.quote()
andurllib.quote_plus()
函数可以用来做这样的引用,但是字符-
不需要引用也不会被引用:
使用转义符替换字符串中的特殊字符。
%xx
字母、数字和字符'_.-'
从不被引用。
演示:
>>> from urllib import quote
>>> quote('abc-def')
'abc-def'
>>> quote('some data that needs quoting!')
'some%20data%20that%20needs%20quoting%21'
如果您使用的是 Python 3,则可以在模块quote
中找到和函数。quote_plus
urllib.parse