Подтвердить что ты не робот

Заменить появление пробела в URL-адресе

У меня есть URL-адрес приложения iPhone для работы. Но проблема в том, что в URL есть несколько пробелов. Я хочу заменить пробелы "%20". Я знаю, что существуют методы stringByReplacingOccurencesOfString и stringByAddingPercentEscapesUsingEncoding. Я также использовал их. Но они не работают для меня. Пространства заменяются некоторыми необычными значениями.

Я применяю эти методы к экземпляру NSString.

4b9b3361

Ответ 1

Правильный формат для замены пробела из URL:

Цель С

NSString *urlString;//your url string.

urlString = [originalUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

или же

urlString = [originalUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

iOS 9 и позже

urlString = [originalUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

Свифт:

var originalUrl = "https://google.com"
var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

iOS 9 и позже

var urlString :String = originalUrl.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!

Swift 4

var urlString = originalString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)

Swift 4.2

var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

Ответ 2

Swift 2.0

let originalUrl = "http://myurl.com/my photo.png"
let urlNew:String = urlReq.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())! 

Вывод:

http://myurl.com/my%20photo.png

Ответ 3

Чтобы заменить появление в SWIFT 3:

let updatedUrl = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)

Ответ 4

Swift 4

Еще один способ заменить пустое пространство методом replaceOccurferences:

let yourString = "http://myurl.com/my photo.png"
let urlNew:String = yourString.replacingOccurrences(of: " ", with: "%20").trimmed 

Это заменит пустое пространство ("") на " %20"

Ответ 5

var urlString :String = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!

Ответ 6

Решение Swift 4. Вы просто пропускаете строку, и она заполняет пробелы %20 и добавляет "http://" в начало строки. Довольно мило!

URL(fileURLWithPath: String) 

Ответ 7

Swift 5

var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

Ответ 8

Надеюсь, это сработает

let url = "https:youtube.56432fgrtxcvfname=xyz&sname=tuv"
let urlNew:String = url.replacingOccurrences(of: " ", with: "%20")
Alamofire.request(urlNew, method: .get, headers: headers).responseJSON{
response in
print(response)    
}

Это удалит все виды пробелов из URL.

Ответ 9

SWIFT 3.1

Простой способ заменить пустое пространство на replaceOccurrences:

URL = URL.replacingOccurrences(of: " ", with: "", options: .literal, range: nil)

Ответ 10

Swift 4, iOS-9

let **urlSearchVal**:String = "top 10 movies"     
let urlString = 

    "https://www.googleapis.com/youtube/v3/search?part=snippet&q=\(urlSearchVal)&key=......&type=video"   
//replace ...... above with your youtube key   
// to ignoring white space in search  
        let UrlString :String = urlString.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!