所以我有以下代碼:的NSArray從URL編碼的問題
NSURL *baseURL = [NSURL URLWithString:@"http://www.baseurltoanxmlpage.com"];
NSURL *url = [NSURL URLWithString: @"page.php" relativeToURL:baseURL];
NSArray *array = [NSArray arrayWithContentsOfURL:url];
如果XML頁面如下:
<array><dict><key>City</key><string>Montreal</string></dict></array>
數組返回罰款。但是,如果XML文件如下所示:
數組返回null。我想這與特殊字符「é」有關。 我會如何處理這些角色? XML頁面是使用PHP生成的。 utf8_encode()函數使數組返回,但是我不知道如何處理編碼的「é」字符。
這裏的工作解決方案:
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]);
第一個日誌打印出 「E」 的罰款。 在第二個日誌中,它被編碼並打印爲「\ U00e9」。 在第三個日誌中,它被解碼並打印爲「é」(這正是我所尋找的)。
您可能想使用`encoding:NSUTF8StringEncoding`來代替`encoding:4`。你永遠不知道蘋果是否可能將這4改變爲別的東西。有關NSStringEncoding類型,請參閱http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/c_ref/NSStringEncoding。 – 2009-05-27 18:01:47
固定。非常感謝。 – samvermette 2009-05-27 18:07:12