Как мне декодировать html кодированные символы в NSString? - PullRequest
3 голосов
/ 22 сентября 2011

Я пишу приложение с поддержкой английского и французского языков.Приложение запрашивает информацию с сервера, а ответ сервера использует JSON.Я использую библиотеку JSONKit для разбора ответа, но строки, которые он анализирует по французским ответам, выглядят так:

Membres –Économisez 5% sur les services et jusqu’à 15% sur d’autres produits

Как декодировать специальные символы?чтобы я получил это:

Membres –Economisez 5% sur les services et jusqu'а 15% sur d'autres productions

Я посмотрел на API для NSString и попробовал некоторые из экземпляровметоды, но я не знаю много о кодировке символов, и я получил странные результаты.Поэтому, если вы также можете дать краткое объяснение кодировки символов, я был бы очень признателен.

Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 22 сентября 2011
3 голосов
/ 27 ноября 2017

Это решение хорошо сработало, если вы все еще используете код Objective C.

- (NSString *)decodeHtmlStringValue
{
  NSData *encodedString = [self dataUsingEncoding:NSUTF8StringEncoding];
  NSAttributedString *htmlString = [[NSAttributedString alloc] initWithData:encodedString
                                                                    options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];
  return [htmlString string];
}

Если вы используете swift

https://stackoverflow.com/questions/25607247/how-do-i-decode-html-entities-in-swift

3 голосов
/ 22 сентября 2011

NSString stringByReplacingPercentEscapesUsingEncoding с правильной кодировкой строки должен сделать волшебство.

[yourString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

может быть хорошим кандидатом.

...