Я работаю над приложением, которое получает кучу описаний через xml, а затем после разбора выводит их на экран.У меня проблема с некоторыми описаниями, когда апострофы превращаются в вопросительные знаки.Я имею в виду, что они начинаются в xml, на экране вывода и в базе данных, из которой я получаю их как апостроф, но затем они отображаются в приложении как знак вопроса.Это не всегда происходит, но каждый раз с одинаковыми описаниями.Вот пример:
Это то, что находится в xml / database
But it won't be easy.
After a tour of the house, you'll be
Это то, что отображается в приложении:
But it won?t be easy.
After a tour of the house, you?ll be
Я довольноуверен, что проблема в том, что ipad / iphone не распознает символ, который он получает ... но я понятия не имею, как бы я его исправить.Вот мой код Parser: я считаю, что xml отправляется в кодировке UTF - 8.
[whereToGetXML appendFormat:xmlID];
NSURL *URL=[[NSURL alloc] initWithString:whereToGetXML];
NSData *dataFromServer = [[NSData alloc] initWithContentsOfURL:URL];
NSLog(@"where to get xml is:%@", whereToGetXML);
// Do any additional setup after loading the view from its nib.
NSData *dataWithoutStringTag = [[NSData alloc]init];
NSXMLParser *firstParser = [[NSXMLParser alloc] initWithData: dataFromServer];
[firstParser setDelegate:self];
[firstParser parse];
//Convert the returned parsed string to data using dataUsingEncoding method. HAVE TO HAVE allowLossyConversion:YES or else it will crash on half of the states.
dataWithoutStringTag =[tempParserString dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion:YES];
NSString *htmlCode = [[NSString alloc] initWithData:dataWithoutStringTag encoding:NSASCIIStringEncoding];
NSMutableString *temp = [NSMutableString stringWithString:htmlCode];
NSData *finalData = [temp dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSXMLParser* parser = [[NSXMLParser alloc] initWithData:finalData];
// NSLog(@"Data is: %@", dataWithoutStringTag);
//NSXMLParser* parser = [[NSXMLParser alloc] initWithData: dataFromServer];
[parser setDelegate: self];
//[parser setShouldResolveExternalEntities:YES];
[parser parse];
[parser release];