2010-08-09 21 views
19

Tengo una URL en una aplicación de iPhone para trabajar. Pero el problema es que tiene algunos espacios en la URL. Quiero reemplazar los espacios con '% 20'. Sé que están los métodos stringByReplacingOccurencesOfString y stringByAddingPercentEscapesUsingEncoding. Yo también los he usado. Pero no están trabajando para mí. Los espacios son reemplazados por algunos valores inusuales.Reemplazar las apariciones de espacio en la URL

Estoy aplicando esos métodos en una instancia de NSString.

+0

¿Puedes publicar un ejemplo de código? –

+3

Echa un vistazo a esta publicación aquí: http: // stackoverflow.com/questions/695911/question-about-character-of-nsstring-invalid-in-url-on-iphone The Answer: NSString * escapedUrl = [originalUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; – Tieme

Respuesta

61

El formato correcto para reemplazar el espacio de la URL es:

Objetivo C

NSString *urlString;//your url string. 

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

o

urlString = [originalUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

iOS 9 y posterior

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

Swift:

var originalUrl = "https://google.co.in" 
var urlString :String = originalUrl.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! 

ios 9 y posterior

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

Swift 4

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

no funciona en swift –

+0

@RaquibulIslam He editado mi respuesta, compruebe ahora – Raj

+1

Creo que stringByReplacingPercentEscapesUsingEncoding() está en desuso. En su lugar, podemos usar stringByRemovingPercentEncoding –

9

Swift 2,0

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

Salida:

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

Swift 3

Otra forma de sustituir un espacio vacío con el método replacingOccurrences:

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

que sustituirá al espacio vacío ("") con '% 20'

4

Para reemplazar aparición en SWIFT 3:

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

SWIFT 3,1

Una manera sencilla de reemplazar un espacio vacío con 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

welcome to SO. por favor, mejora la calidad de tu respuesta –

Cuestiones relacionadas