J'ai le code suivant:NSArray de problème d'encodage URL
NSURL *baseURL = [NSURL URLWithString:@"http://www.baseurltoanxmlpage.com"];
NSURL *url = [NSURL URLWithString: @"page.php" relativeToURL:baseURL];
NSArray *array = [NSArray arrayWithContentsOfURL:url];
Si la page XML est la suivante:
<array><dict><key>City</key><string>Montreal</string></dict></array>
Le tableau renvoie bien. Toutefois, si le fichier XML est la suivante:
<array><dict><key>City</key><string>Montréal</string></dict></array>
Le tableau renvoie null. Je suppose que cela a quelque chose à voir avec le caractère spécial "é". Comment pourrais-je m'occuper de ces personnages? La page XML est générée avec PHP. La fonction utf8_encode() fait retourner le tableau mais je ne sais pas comment gérer le caractère "é" encodé.
Voici la solution de travail:
NSString *stringArray = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSArray *array = [stringArray propertyList];
NSLog(stringArray);
NSLog(@"%@", array);
NSLog([[[array objectAtIndex:0] valueForKey:@"City"] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
Les premières impressions du journal le "é" bien. Dans le deuxième journal, il est codé et est imprimé comme "\ U00e9". Dans le 3ème journal, il est décodé et imprimé comme "é" (ce que je cherchais).
lieu de 'encodage: 4', vous pouvez utiliser' encodage: NSUTF8StringEncoding'. Vous ne savez jamais si Apple pourrait changer cela à quelque chose d'autre. Voir http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/c_ref/NSStringEncoding pour les types NSStringEncoding. –
Fixé. Merci beaucoup l'homme. – samvermette