Замена не работает, потому что для второго вызова str.replace()
возвращаемое значение не присваивается никому, поэтому оно теряется. Вы можете исправить это с помощью:
temp_title = temp_title.replace('™', '%E2%84%A2')
для привязки возвращаемого значения к temp_title
, однако, учтите следующее.
Поскольку вы хотите в процентах кодировать строку для использования в URL, вы можете просто использовать urlib.quote()
:
>>> title = 'NetX™ DHCP rev1.05'
>>> title
'NetX\xe2\x84\xa2 DHCP rev1.05'
>>> import urllib # Python 2
>>> urllib.quote(title)
'NetX%E2%84%A2%20DHCP%20rev1.05'
Вы заметите, что пробелы также были обработаны для вас. Таким образом, вы можете написать свою функцию так:
def create_link(title):
return urllib.quote('https://ApplicationNotes/{}'.format(title))
, который имеет преимущество в процентном кодировании других допустимых символов в URL.
Для полноты, если вы использовали Python 3:
>>> from urllib.parse import quote
>>> quote('NetX™ DHCP rev1.05')
'NetX%E2%84%A2%20DHCP%20rev1.05'
Возможно, вам даже не нужно указывать URL в зависимости от того, что вы хотите с ним сделать. Если вы используете requests
для отправки HTTP-запроса на URL, вы можете просто использовать его как:
>>> import requests
>>> r = requests.get('https://ApplicationNotes/NetX™ DHCP rev1.05')
>>> r.url
u'https://ApplicationNotes/NetX%E2%84%A2%20DHCP%20rev1.05'