2010-08-09 3 views
19

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

Я применяю эти методы на примере NSString.

+0

Можете ли вы опубликовать пример кода? –

+3

Отправляй сообщение здесь: http: // stackoverflow.com/questions/695911/question-about-character-of-nsstring-invalid-in-url-on-iphone Ответ: NSString * escapedUrl = [originalUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; – Tieme

ответ

61

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

цель C

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.co.in" 
var urlString :String = originalUrl.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! 

ИОС 9 и более поздних

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

Свифта 4

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

не работает в swift –

+0

@RaquibulIslam Я отредактировал свой ответ, пожалуйста, проверьте сейчас – Raj

+1

Я думаю, что stringByReplacingPercentEscapesUsingEncoding() устарел. Вместо этого мы можем использовать stringByRemovingPercentEncoding –

9

Swift 2.0

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

Выход:

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

Swift 3

Другой способ заменить пустое пространство методом replacingOccurrences:

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

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

4

Чтобы заменить вхождение в СВИФТ 3:

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

СВИФТ 3,1

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

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

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)! 
+0

добро пожаловать в SO. пожалуйста, улучшите качество ответа –