5

我正在开发一个应用程序,它在私人服务器上进行搜索并向用户显示结果。问题是 NSXLParser 无法解析特殊的德语和法语字符。例如:应该是:(Geschäftsführer)-> 我得到的是:(äftsführer)

我怎样才能解决这个问题 ?

这是我的代码:

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"results"])
    {
        currentJob = [SearchResult alloc];
    }

}

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


    if ([elementname isEqualToString:@"jobTitle"])
    {
        currentJob.jobTitle = currentNodeContent;
    }

    if ([elementname isEqualToString:@"location"])
    {
        currentJob.shortAddress = currentNodeContent;
    }

    if ([elementname isEqualToString:@"companyName"])
    {
        currentJob.employer = currentNodeContent;
    }

    if ([elementname isEqualToString:@"results"])
    {
        [self.jobs addObject:currentJob];
        currentJob = nil;
        currentNodeContent = nil;
    }
}

任何帮助将不胜感激......提前致谢

4

1 回答 1

3

您的foundCharacters方法应该将字符串附加到 NSMutableString 对象,因为它可以为单个值多次调用。在didStartElement中,初始化一个 NSMutableString 对象(我们称之为elementContentString),然后执行以下操作:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)chars
{
    [self.elementContentString appendString:chars];
}

在您的内容中didEndElement,您可以将内容作为字符串获取。请注意,您应该使用[NSString stringWithString:self.elementContentString].

于 2012-09-26T09:44:58.473 回答