我使用XML解析器从服务器检索xml。
我有以下两件事:
NSMutableArray *catalogueList;
Catalogue *currentCatalogue;
目录看起来像这样:
#import "Catalogue.h"
@implementation Catalogue
@synthesize id_model;
@synthesize name;
@synthesize url;
@end
这段代码也是:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementName isEqualToString:@"catalogue"])
{
// Add currentCatalogue to array
[catalogueList addObject: currentCatalogue.url];
}
这很好用,但有一点问题。当我这样做时:
NSLog(@"Valoare url %@", currentCatalogue.url);
显示正确的网址。
但是当我这样做时:
NSLog(@"Valoare url %@", catalogueList);
输出为“link”。
根本不正确:我得Coupé
而不是Coup\U00e9
。请告诉我如何在catalogueList
中获取与é
字符的正确链接。
答案 0 :(得分:2)
确保 url 属性是数组中的字符串。
@interface Catalogue : NSObject{
NSString *myURL;
}
NSString不会改变特殊字符,并且应该输出完全相同的内容。以下假设您已经将字符串添加到数组中。
NSLog(@"My URL: %@", [currentCatalogue objectAtIndex:0]);
Ouput: My URL: http://host_server/uploads/modeles_pdf/41_TTRS_Coupé_TTRS_Roadster_Tarifs_20110428.pdf
另外,尝试这样做以查看是否收到相同的错误......
NSString *temp = currentCatalogue.url;
//Check the string
NSLog(@"NSString temp: %@", temp);
//Add it to the array
[catalogueList addObject:temp];
//Assuming object is at index 0, check the object in the array
NSLog(@"My URL: %@", [catalogueList objectAtIndex:0]);
答案 1 :(得分:1)
您正在打印数组而不是对象。试试这个:
NSLog(@"catalogueList url %@", [catalogueList objectAtIndex:0]);
查看此SOF问题NSLog incorrect encoding。 与UTF8字符类似的问题
答案 2 :(得分:0)
获取UTF8字符串值并使用它
[currentCatalogue.url UTF8String];