我試圖編碼一個字符串包含' - '(減號)符號到iso8859-15,它會返回字符串,因爲它是。 爲如:Python:編碼特殊字符
str="abc-def"
預期輸出是
abc%2Ddef
有沒有辦法做到這一點?對不起,如果我的問題是錯誤的。
我試圖編碼一個字符串包含' - '(減號)符號到iso8859-15,它會返回字符串,因爲它是。 爲如:Python:編碼特殊字符
str="abc-def"
預期輸出是
abc%2Ddef
有沒有辦法做到這一點?對不起,如果我的問題是錯誤的。
你的輸出樣本建議您正在尋找URL編碼,不是Latin-1的。
的urllib.quote()
和urllib.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
module找到。
是的,我正在尋找網址編碼。 – upv
ya。
from urllib.parse import quote
st = "abc-def"
encoded = quote(st)
爲了記錄,'urllib.parse'是一個Python 3模塊。在Python 2中,'quote'在'urllib'中(沒有子模塊)。 –
對不起,這將是報價。我的錯 !改變了我的代碼。 – rnbcoder
這不是拉丁-1編碼。您可能想要了解哪些編碼*是*。 :-) –
不要命名變量'str';掩蓋了內置的類型。 –