#swift
#swift
Вопрос:
У меня есть входная строка » 20″, и я пытаюсь передать ее в качестве параметра запроса в url.
Итак, я пытаюсь закодировать myInputString, выполнив
let s1 = myInputString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
Но в отладчике строка s1 по-прежнему отображается как ‘ 20’ вместо ‘+20’
Я что-то сделал не так?
Комментарии:
1.
является допустимым символом URL. Кодирование не требуется.
Ответ №1:
Как уже упоминалось Мэттом
, это законный символ URL. Если вам действительно нужно ее закодировать, вам нужно будет создать свой собственный пользовательский urlQueryAllowed
и вычесть из него знак плюс:
extension CharacterSet {
static let allowedCharacters = urlQueryAllowed.subtracting(.init(charactersIn: " "))
}
let myInputString = " 20"
let s1 = myInputString.addingPercentEncoding(withAllowedCharacters: .allowedCharacters) // "+20"
Комментарии:
1. Спасибо. Не могли бы вы помочь мне понять, почему ‘ ‘ является допустимым символом? Когда я перехожу к w3schools.com/tags/ref_urlencode . ASP , введите
1 20
, а затем «Url encoded», я получаю1+20
2.
в an
URL
также означает пробел.