Как в Swift закодировать любой символ в поле поиска? - PullRequest
0 голосов
/ 14 июля 2020

Я не уверен, понимаю ли я, как именно это работает. Я пытаюсь процентно кодировать вводимые пользователем данные, потому что для ввода часто используются такие буквы, как ø, æ, å и backspace. Это моя попытка.

1 Ответ

0 голосов
/ 15 июля 2020

Прежде всего, вы неправильно используете String(describing. Он не исправляет неудачное процентное кодирование.

Вторая часть всего процентного кодирования относится к части URL-адреса query, а не к host.

Треть из всех name функции с начальной строчной буквой

Принудительное разворачивание закодированной строки безопасно, потому что содержимое поля поиска всегда находится в диапазоне кодируемых символов.

func searchData(){
    // updating page every time...
    let encode = searchText.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
    let url = "http://xmlopen.rejseplanen.dk/bin/rest.exe/location?input=\(encode))&format=json"
    print(url)
    self.vm.SearchData(url: url)
}

Подходящая альтернатива - URLComponents и URLQueryItem, который правильно кодирует строку.

...