iphone - NSXMLParser 解析使用 Windows-1256 编码的 xml 文件

标签 iphone xml ios encoding nsxmlparser

我想解析 Windows-1256"编码的 rss 文件,但它没有被解析器读取 我用 UTF8 编码做了很多解析,但只有这个不起作用,为什么?

rss file with Windows-1256

已解决 解决方案是

NSString *myStr = [[NSString alloc] initWithData:myData encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsArabic) ];
myStr = [myStr stringByReplacingOccurrencesOfString:@"encoding=\"windows-1251\"" withString:@""];        
NSData* aData = [myStr dataUsingEncoding:NSUTF8StringEncoding];    
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:aData];

最佳答案

谢谢 Mohamed 的回答,我一直在研究它 10 天,但我们根本没有找到任何答案。这是我的代码:

-(void)parseXMLFileAtURL:(NSString *)URL {

NSURL *xmlURL = [NSURL URLWithString:URL];
NSData * dataXml = [[NSData alloc] initWithContentsOfURL:xmlURL];
NSString *myStr = [[NSString alloc] initWithData:dataXml encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsArabic)];

myStr = [myStr stringByReplacingOccurrencesOfString:@"encoding=\"windows-1256\"" withString:@""];
NSData *aData = [myStr dataUsingEncoding:NSUTF8StringEncoding];

NSXMLParser *rssParser = [[NSXMLParser alloc] initWithData:aData];
[dataXml release];
[rssParser setDelegate:self];
[rssParser setShouldProcessNamespaces:NO];
[rssParser setShouldReportNamespacePrefixes:NO];
[rssParser setShouldResolveExternalEntities:NO];
[rssParser parse];
[rssParser setDelegate:nil];
[rssParser release];

关于iphone - NSXMLParser 解析使用 Windows-1256 编码的 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637666/

相关文章:

.net - 在 SOAP 调用中查看 xml 请求

xml - 使用 XML 文档部署 Web API 项目时生成服务器上的 "Access is denied"

iOS 导出存档配置文件列表

iOS 应用程序在 Facebook 登录时启动另一个应用程序

iphone - 无法执行“codesign”(无此文件或目录)

iphone - 无法使用 Socialize SDK 注销 Facebook

xml - name() 和 local-name() 有什么区别?

iphone - 客户端 服务器 iPhone 应用程序

iphone - 从 MKMapView 上的用户交互创建覆盖?

ios - 带有运行 xcodebuild 测试矩阵的 Travis-CI