Comment puis-je supprimer/décoder une URL pour cent de l'encodage?
Je veux prendre un url
et de le convertir à une plus lisible format. Par exemple, j'ai le lien suivant:
http://en.wikipedia.org/wiki/S%C3%A1ndor_Font
J'ai enlever les parties inutiles et suis parti avec "S%C3%A1ndor_Font"
comme un NSString
. Est-il de toute sorte de façon de le convertir en un "Sándor Font"
(ce qu'il devrait être), sans avoir à taper à chaque combinaison de caractères spéciaux et de remplacement de chaque partie de la chaîne?
Pour montrer comment je veux l'utiliser, j'ai écrit le code 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;
À la fin, je veux l'étiquette de dire "Sándor Font"
pas "S%C3%A1ndor_Font"
. Merci!
Essayez stringByRemovingPercentEncoding.
Suite à la accepté de répondre, c'est assez fragile façon d'arriver à votre
Suite à la accepté de répondre, c'est assez fragile façon d'arriver à votre
S%C3%A1ndor_Font
chaîne dans la première place. Je soupçonne -[NSURL lastPathComponent]
est ce que vous êtes aprèsOriginalL'auteur user2844801 | 2014-01-03
Vous devez vous connecter pour publier un commentaire.
- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding;
sur NSString est ce que vous voulez.I. e.
Parfait! Merci!
'stringByReplacingPercentEscapesUsingencoding:" est obsolète:la première obsolète dans macOS 10.11 - Utilisation -stringByRemovingPercentEncoding au lieu de cela, qui utilise toujours le recommandé l'encodage UTF-8.
Est-il raisonnablement décent pour ce faire, avant de 10,9? Je suppose alors j'ai juste besoin de tester la version de l'OS ou d'attraper une exception et appel stringByReplacingPercentEscapesUsingencoding?
OriginalL'auteur Josh The Geek
Pour iOS10/Swift 3:
substring.removingPercentEncoding
Pour iOS9/Swift 2.3:
substring.stringByRemovingPercentEncoding
stringByRemovingPercentEncoding
ne fonctionnera pas si vous êtes encore soutenir anciennes OSs :sstringByRemovingPercentEncoding
est effectivement disponible depuis iOS 7.0 developer.apple.com/library/ios/documentation/Cocoa/Reference/...OriginalL'auteur Frankie
Swift 3
OriginalL'auteur quemeful
Swift 4.2 (Linux)
OriginalL'auteur Sergey Di