0

我在转换从服务中获取的西班牙语文本时遇到问题

正确的格式。他们在服务器端使用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...SY " 。和“ øPor quÈ albergamos a alborotadores? ”而不是“ ¿Por qué albergamos a alborotadores? ”。请帮忙

4

2 回答 2

1

您应该将 XML 数据下载为二进制 ( NSData) 并让解析器处理编码。

NSData *data = [NSData dataWithContentsOfURL:url];

NSError *error;
TBXML *tbxml = [TBXML tbxmlWithXMLData:data error:&error];

请注意,XML 应该将内容编码作为第一行,因此无需在代码中指定编码。

于 2014-02-25T15:54:19.677 回答
0

尝试使用 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];
于 2014-02-25T09:40:57.417 回答