【发布时间】:2010-03-21 00:22:44
【问题描述】:
我正在使用 nsxmlparser,想知道如何将 ISO-8859-1 正确解析为 NSString。
目前,我正在获得两字节字符的结果。
我使用的 XML(不是我创建的)以 <?xml version="1.0" encoding="ISO-8859-1"?> 开头
这是我正在使用的基本调用(省略了 NSThread 调用)。
NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:sampleFileName ofType:@"xml"];
NSString *xmlFileContents = [NSString stringWithContentsOfFile:xmlFilePath encoding:NSUTF8StringEncoding error:nil];
NSData *data = [xmlFileContents dataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
【问题讨论】:
-
看起来您的源编码可能至少部分是 UTF-8。我建议发布样本(或样本链接),以便进一步诊断。
-
我在顶部看到 这一行。我假设那是编码?如何设置 NSXmlParser 以使用它?
-
Travis:这是包含编码声明的序言,是的。可能是错的!或者解析器可能没有正确使用它。无论哪种方式,不,您不需要告诉解析器;它应该按原样遵守声明(如果它识别编码的名称)。
标签: xml iphone character-encoding nsxmlparser