получает пробелы ( %20) и другие злоумышленники, но игнорирует амперсанды!?!
Ответ 1
Амперсанды не будут обрабатываться этим методом, поскольку они являются юридическими символами в URL-адресе. Вы должны, вероятно, предварительно обработать особенно проблемные фрагменты, по частям, до этого вызова.
Ответ 2
Вот хорошее решение этой проблемы, взятое из блог Bagonca, чтобы URL-кодировать ваши NSStrings: