Python:编码特殊字符

时间:2013-07-18 11:45:33

标签: python special-characters encode

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

str="abc-def"

预期输出

abc%2Ddef

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

2 个答案:

答案 0 :(得分:1)

from urllib.parse import quote
st = "abc-def"
encoded = quote(st)

答案 1 :(得分:1)

您的输出示例表明您正在寻找 url encoding ,而非Latin-1。

urllib.quote()urllib.quote_plus()函数可用于进行此类引用,但-字符需要引用且不会引用:

  

使用%xx转义替换 string 中的特殊字符。从不引用字母,数字和字符'_.-'

演示:

>>> from urllib import quote
>>> quote('abc-def')
'abc-def'
>>> quote('some data that needs quoting!')
'some%20data%20that%20needs%20quoting%21'

如果您使用的是Python 3,则可以在urllib.parse module中找到quotequote_plus函数。