Заменить появление пробела в URL-адресе
У меня есть URL-адрес приложения iPhone для работы. Но проблема в том, что в URL есть несколько пробелов. Я хочу заменить пробелы "%20". Я знаю, что существуют методы stringByReplacingOccurencesOfString
и stringByAddingPercentEscapesUsingEncoding
. Я также использовал их. Но они не работают для меня. Пространства заменяются некоторыми необычными значениями.
Я применяю эти методы к экземпляру NSString
.
Ответы
Ответ 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)!