-2

我正在尝试将包含“-”(减号)符号的字符串编码为 iso8859-15,它将按原样返回字符串。例如:

str="abc-def"

预期输出为

abc%2Ddef

有没有办法做到这一点?对不起,如果我的问题是错误的。

4

2 回答 2

1

是的。

from urllib.parse import quote
st = "abc-def"
encoded = quote(st)
于 2013-07-18T11:50:15.507 回答
1

您的输出示例表明您正在寻找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_plusurllib.parse

于 2013-07-18T11:50:44.530 回答