>我在转换从服务中获取的西班牙语文本时遇到问题
格式正确。服务器端他们使用ISO-8859-1
进行编码。这是一个 xml 服务。在我的
iOS7应用程序,我正在使用TBXml
解析器来解析数据。代码为:
NSString *XMLString = [[NSString alloc] initWithContentsOfURL:urlString encoding:NSISOLatin1StringEncoding error:nil];
TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];
我正在解析这些数据,但是当有西班牙语字符(如">BEBÉS Y")时,我的
字符串将为">BEB...S Y" .和">øPor quÈ albergamos a alborotadores?"而不是">¿Por qué 阿尔贝加莫斯·阿尔博罗塔多尔斯?请帮忙
你应该将XML数据下载为二进制(NSData
),并让解析器处理编码。
NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
TBXML *tbxml = [TBXML tbxmlWithXMLData:data error:&error];
请注意,XML 应将内容编码作为第一行,因此无需在代码中指定编码。
尝试使用 NSUTF8StringEncoding
NSString *XMLString = [[NSString alloc] initWithContentsOfURL:urlString encoding:NSUTF8StringEncoding error:nil];
TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];
更新:
NSData *dataContent = [[NSData dataWithContentsOfURL:urlString];
NSString *XMLString = [[NSString alloc] initWithData:dataContent encoding:NSISOLatin1StringEncoding];
TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];
更新 2:尝试数据初始化
NSData *dataContent = [[NSData dataWithContentsOfURL:urlString];
TBXML *tbxml = [[TBXML alloc] initWithXMLData:XMLString];