0
我想使用NSXmlParser来解析ISO-8859-1数据。使用Apple自己的例子来解析ISO-8859-1,我有以下几点。NSString到NSData编码失败
// path to xml file
NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:sampleFileName ofType:@"xml"];
// string of xml contents
NSString *xmlFileContents = [NSString stringWithContentsOfFile:xmlFilePath encoding:NSUTF8StringEncoding error:nil];
NSLog(@"contents: %@", xmlFileContents);
我看到在控制台中,字符串的内容是准确的。
但是,当我尝试将其转换为NSData对象(用于解析器)时,我执行以下操作。
NSData *xmlData = [xmlFileContents dataUsingEncoding:NSUTF8StringEncoding];
但是当我didStartElement委托被调用,我看到Â
显示出来我认为这是从编码差异。
NSXmlParser可以处理ISO-8859-1,如果是这样,我做错了什么?
不能NSXMLParser了解它处理''声明的编码吗? – zneak 2010-03-21 04:33:26
我会这样想的。我的XML开头: <?xml version =“1.0”encoding =“ISO-8859-1”?> 而且就像我说的NSString内容正确记录。将它转换为NSData,启动NSXmlParser并转储在didStartElement中找到的内容会在某些区域生成这些Â字符。 – Ternary 2010-03-21 04:46:27
而不是阅读文件到一个NSString,然后将其转换为NSData,它可能简化的事情只是做[NSData dataWithContentsOfFile:xmlFilePath] – 2010-03-21 12:33:47