J'ai une URL dans une application iPhone pour travailler. Mais le problème est qu'il y a quelques espaces dans l'URL. Je souhaite remplacer les espaces par «% 20». Je sais qu'il existe les méthodes stringByReplacingOccurencesOfString
et stringByAddingPercentEscapesUsingEncoding
. Je les ai aussi utilisés. Mais ils ne travaillent pas pour moi. Les espaces sont remplacés par des valeurs inhabituelles.
J'applique ces méthodes sur une instance de NSString
.
Le format correct pour remplacer l'espace à partir de l'URL est le suivant:
Objectif c
NSString *urlString;//your url string.
urlString = [originalUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
ou
urlString = [originalUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
iOS 9 et ultérieur
urlString = [originalUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
Rapide :
var originalUrl = "https://google.com"
var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
iOS 9 et plus tard
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)
Swift 2.0
let originalUrl = "http://myurl.com/my photo.png"
let urlNew:String = urlReq.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())!
Sortie:
http://myurl.com/my%20photo.png
Pour remplacer l'occurrence dans Swift 3 :
let updatedUrl = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)
Swift 4
Une autre façon de remplacer un espace vide par la méthode replacementOccurrences:
let yourString = "http://myurl.com/my photo.png"
let urlNew:String = yourString.replacingOccurrences(of: " ", with: "%20").trimmed
Cela remplacera l'espace vide ("") par '% 20'
var urlString: String = originalUrl.addingPercentEncoding (withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!