Je veux prendre une url
et la convertir en un format plus lisible. Par exemple, j'ai le lien suivant:
http://en.wikipedia.org/wiki/S%C3%A1ndor_Font
J'enlève les parties inutiles et il me reste "S%C3%A1ndor_Font"
en tant que NSString
. Existe-t-il un moyen de convertir cela en "Sándor Font"
(ce qu'il devrait être en réalité), sans avoir à saisir chaque combinaison de caractères spéciaux et à remplacer chaque partie de la chaîne?
Pour montrer comment je veux utiliser cela, j’ai écrit le code exemple suivant:
//request is a NSURLRequest with a url of http://en.wikipedia.org/wiki/S%C3%A1ndor_Font
NSRange range = [[request.URL absoluteString] rangeOfString:@"/wiki/"];
NSString *substring = [[[request.URL absoluteString] substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
//ArticleTitleLabel is a UILabel
self.ArticleTitleLabel.text = substring;
En fin de compte, je veux que l'étiquette dise "Sándor Font"
pas "S%C3%A1ndor_Font"
. Merci!
- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding;
sur NSString est ce que vous voulez.
C'est à dire.
[substring stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Pour iOS10/Swift 3:
substring.removingPercentEncoding
Pour iOS9/Swift 2.3:
substring.stringByRemovingPercentEncoding
Swift 3
str.removingPercentEncoding
Swift 4.2 (support Linux)
let percentString = "hello%20world"
let string = NSString(string: percentString).removingPercentEncoding!
print(string) // hello world