Как удалить/декодировать процентное кодирование URL?

Я хочу взять url и преобразовать его в более читаемый формат. Например, у меня есть следующая ссылка:

http://en.wikipedia.org/wiki/S%C3%A1ndor_Font

Я убираю ненужные части и оставляю "S%C3%A1ndor_Font" как NSString. Есть ли способ конвертировать это в "Sándor Font" (что на самом деле должно быть), без необходимости вводить каждую комбинацию специальных символов и заменять каждую часть строки?

Чтобы продемонстрировать, как я хочу это использовать, я написал следующий пример кода:

   //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;

В конце я хочу, чтобы метка говорила "Sándor Font" not "S%C3%A1ndor_Font". Спасибо!

Ответ 1

- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding; в NSString - это то, что вы хотите.

т.е.

[substring stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

Ответ 2

Для iOS10/Swift 3:

substring.removingPercentEncoding

Для iOS9/Swift 2.3:

substring.stringByRemovingPercentEncoding

Ответ 3

Swift 3

str.removingPercentEncoding