NSXmlParser를 사용하여 ISO-8859-1 데이터를 구문 분석하려고합니다. 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 객체로 변환하려고하면 다음 작업을 수행합니다. 내 didStartElement 대리자가 호출 될 때
NSData *xmlData = [xmlFileContents dataUsingEncoding:NSUTF8StringEncoding];
는하지만, 나는 Â
내가 인코딩 차이에서 생각하는 게재를 참조하십시오.
NSXmlParser에서 ISO-8859-1을 처리 할 수 있습니까? 그렇다면 무엇이 잘못 되었나요?
NSXMLParser가 ''선언문에서 다루는 인코딩을 이해할 수 없습니까? – zneak
나는 그렇게 생각할 것이다. XML 버전 = "1.0"인코딩 = "ISO-8859-1"> : 내 XML로 시작 그리고 같은 나는있는 NSString 내용이 올바르게 기록했다. 그것을 NSData로 변환하고, NSXmlParser를 시작하고 didStartElement에서 발견 된 것을 덤프하면 특정 영역에서 이러한 문자가 생성됩니다. – Ternary
파일을 NSString으로 읽어 들인 다음 NSData로 변환하는 대신 작업을 단순화 할 수 있습니다. [NSData dataWithContentsOfFile : xmlFilePath] –