Web Url包含我的NSXMLParser不解析的西班牙字符

问题描述:

我正在解析来自服务器的Web URL并将它们存储在字符串中,然后在Webview上显示它。但现在,当我解析西班牙语单词像Web Url包含我的NSXMLParser不解析的西班牙字符

http://litofinter.es.milfoil.arvixe.com/litofinter/PDF/Presentación_LITOFINTER_(ES).pdf 

它接受它

PDF File Name ++++++ http://litofinter.es.milfoil.arvixe.com/litofinter/PDF/Presentaci 
PDF File Name ++++++ ón_LITOFINTER_(ES).pdf 

即两个不同的琴弦......我知道我必须做出小的变化就是将字符串,但我现在无法做到,任何人都可以帮助我。这里是我的代码: -

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    currentElement = elementName; 

    if([currentElement isEqualToString:@"category"]) { 

     NSLog(@"Current element in Category:- %@",currentElement); 
     obj = [[Litofinter alloc]init]; 
     obj.productsArray = [[NSMutableArray alloc]init]; 
    } 

    if([currentElement isEqualToString:@"Product"]) { 
     obj.oneObj = [[Products alloc]init]; 
    } 

} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 
    if([currentElement isEqualToString:@"Logo"]) { 
     obj.cLogo=[NSString stringWithFormat:@"%@",string]; 
     NSLog(@"Logo to be saved in Array :- %@",obj.cLogo); 
    } 

    if([currentElement isEqualToString:@"Name"]) { 

     obj.cName=[NSString stringWithFormat:@"%@",string]; 
     NSLog(@"Name to be saved in Array :- %@",string); 
    } 

    if([currentElement isEqualToString:@"cid"]) { 

     obj.cId=(int)[NSString stringWithFormat:@"%@",string]; 
     NSLog(@"CID to be saved in Array :- %@",string); 
    } 

    if([currentElement isEqualToString:@"pid"]) { 
     //obj.oneObj.id = (int)[NSString stringWithFormat:@"%@",oneBook.id]; 
     obj.oneObj.id = (int)[oneBook.id intValue]; 
    } 

    if([currentElement isEqualToString:@"Title"]) { 
     obj.oneObj.title = [NSString stringWithFormat:@"%@",string]; 
    } 

    if([currentElement isEqualToString:@"Thumbnail"]) { 
     obj.oneObj.thumbnail= [NSString stringWithFormat:@"%@",string]; 
    } 

    // problem occuriing while parsing Spanish characters... 

    if([currentElement isEqualToString:@"pdf"]) { 
     obj.oneObj.pdf = [NSString stringWithFormat:@"%@",string]; 
     NSLog(@"PDF File Name ++++++ %@",string); 
    } 
} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    if([elementName isEqualToString:@"category"]) { 
     NSLog(@"Current element in End Element Category:- %@",currentElement); 

     [TableMutableArray addObject:obj]; 

    } 

    if([elementName isEqualToString:@"Product"]) { 

     [obj.productsArray addObject:obj.oneObj]; 
    } 

    currentElement = @""; 
} 

我会感谢你。

declare NSString in .h file; 

in Did Start parse 

[email protected]""; 

if([currentElement isEqualToString:@"pdf"]) { 
    str=[str stringByAppendingString:string]; 
    obj.oneObj.pdf = [NSString stringWithFormat:@"%@",str]; 
    NSLog(@"PDF File Name ++++++ %@",str); 
} 
+0

非常感谢罗恩,我很欣赏你的快速响应。 – mAc

+0

@ mAc欢迎亲爱的 – Ron

+0

我还没有尝试过你的建议,因为我的工作,但我正在给你的答案是正确的,至少你得到一些积分为你有用的努力。谢谢。 – mAc

我找到了答案:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    currentElement = elementName; 


    // MOdified 

    else if([currentElement isEqualToString:@"pdf"]) { 
    // obj.oneObj.pdf = [NSString stringWithFormat:@"%@",string]; 
    // NSLog(@"PDF File Name ++++++ %@",string); 

     NSMutableString *outputBuilder = [[NSMutableString alloc]init] ; 

     [outputBuilder appendString:[NSString stringWithFormat:@"%@", self.pdfString]]; 

     [outputBuilder appendString:[NSString stringWithFormat:@"%@", string]]; 

     self.pdfString = outputBuilder; 

     [outputBuilder release]; 
    } 

    else 
    { 
     self.pdfString = string; 
    } 

} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 

    if([currentElement isEqualToString:@"pdf"]) 
    { 
     obj.oneObj.pdf = self.pdfString; 
     NSLog(@"PDF File Name ++++++ %@",obj.oneObj.pdf); 
    } 

    currentElement = @""; 
} 

和小的变化也就是在那里我传递这种使用这样的: -

NSString *urlString = [appDelegate.currentBookPressed stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];