Преобразование & amp; to & in Objective-C

У меня есть строка URL в следующем формате.

http://myserver.com/_layouts/feed.aspx?xsl=4&web=%2F&page=dda3fd10-c776-4d69-8c55-2f1c74b343e2&wp=476f174a-82df-4611-a3df-e13255d97533

Я хочу заменить & с & в указанном выше URL-адресе. Мой результат должен быть:

http://myserver.com/_layouts/feed.aspx?xsl=4&web=%2F&page=dda3fd10-c776-4d69-8c55-2f1c74b343e2&wp=476f174a-82df-4611-a3df-e13255d97533

Может ли кто-нибудь отправить мне код, чтобы сделать это?

благодаря

 [urlString stringByReplacingOccurrencesOfString:@"&" withString:@"&"]; 

Проверьте мою категорию NSString для HTML . Вот доступные методы:

 // Strips HTML tags & comments, removes extra whitespace and decodes HTML character entities. - (NSString *)stringByConvertingHTMLToPlainText; // Decode all HTML entities using GTM. - (NSString *)stringByDecodingHTMLEntities; // Encode all HTML entities using GTM. - (NSString *)stringByEncodingHTMLEntities; // Minimal unicode encoding will only cover characters from table // A.2.2 of http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters // which is what you want for a unicode encoded webpage. - (NSString *)stringByEncodingHTMLEntities:(BOOL)isUnicode; // Replace newlines with 
tags. - (NSString *)stringWithNewLinesAsBRs; // Remove newlines and white space from string. - (NSString *)stringByRemovingNewLinesAndWhitespace;

В iPhone SDK нет встроенной функции. Вы должны указать ошибку, которая вам нужна. В обычном Mac OS X SDK вы можете либо загрузить fragment в NSAttributedString, либо как HTML, и попросить его передать обычную строку или использовать CFXMLCreateStringByUnescapingEntities () .

 @interface NSString (LGAdditions) - (NSString *) stringByUnescapingEntities; @end @implementation NSString (LGAdditions) - (NSString *) stringByUnescapingEntities { CFStringRef retvalCF = CFXMLCreateStringByUnescapingEntities(kCFAllocatorDefault, (CFStringRef)self, NULL); return [NSMakeCollectable(retvalCF) autorelease]; } @end 

Для iOS следующий код должен работать для числовых кодов. Должно быть относительно легко распространяться на подобные &

 -(NSString*)unescapeHtmlCodes:(NSString*)input { NSRange rangeOfHTMLEntity = [input rangeOfString:@"&#"]; if( NSNotFound == rangeOfHTMLEntity.location ) { return input; } NSMutableString* answer = [[NSMutableString alloc] init]; [answer autorelease]; NSScanner* scanner = [NSScanner scannerWithString:input]; [scanner setCharactersToBeSkipped:nil]; // we want all white-space while( ![scanner isAtEnd] ) { NSString* fragment; [scanner scanUpToString:@"&#" intoString:&fragment]; if( nil != fragment ) { // eg '& B' [answer appendString:fragment]; } if( ![scanner isAtEnd] ) { // implicitly we scanned to the next '&#' int scanLocation = (int)[scanner scanLocation]; [scanner setScanLocation:scanLocation+2]; // skip over '&#' int htmlCode; if( [scanner scanInt:&htmlCode] ) { char c = htmlCode; [answer appendFormat:@"%c", c]; scanLocation = (int)[scanner scanLocation]; [scanner setScanLocation:scanLocation+1]; // skip over ';' } else { // err ? } } } return answer; } 

Некоторый код модульного теста …

 -(void)testUnescapeHtmlCodes { NSString* expected = @"A & B"; NSString* actual = [self unescapeHtmlCodes:@"A & B"]; STAssertTrue( [expected isEqualToString:actual], @"actual = %@", actual ); expected = @"& B"; actual = [self unescapeHtmlCodes:@"& B"]; STAssertTrue( [expected isEqualToString:actual], @"actual = %@", actual ); expected = @"A &"; actual = [self unescapeHtmlCodes:@"A &"]; STAssertTrue( [expected isEqualToString:actual], @"actual = %@", actual ); } 
Interesting Posts

Переключение fragmentов внутри вкладки

.NET 2.0 «не установлен» после обновления до Windows 7

«Операция недействительна из-за ошибки текущего состояния объекта во время обратной передачи

Счетчик jQuery для подсчета до целевого номера

Перенаправление / сохранение вывода оболочки в переменную GDB?

Обнаружение переключателя iPhone / Silent / Mute iPhone с использованием AVAudioPlayer не работает?

Подключение SSL / Сброс соединения с помощью IISExpress

Я хочу получить Year, Month, Day и т. Д. Из Java Date для сравнения с григорианской датой календаря на Java. Это возможно?

Позиция geom_text на уклонившейся панели

Как несколько клиентов одновременно подключаются к одному порту, например 80, на сервере?

Как разместить загрузочный ISO на USB-накопителе?

Как использовать NSTimer?

Есть ли приложение Windows или простой способ создания сценариев, чтобы убедить окна завершить работу после завершения процесса?

Создание UIImage в форме круга

Как переместить профиль Chrome, а также открыть новые ссылки с перемещенным профилем?

Давайте будем гением компьютера.