Pregunta

Estoy enfrentando un problema en la conversión del texto español que se obtiene del servicio en

Formato correcto.Lado del servidor están codificando con ISO-8859-1.Es un servicio XML.En mi

Aplicación iOS7, estoy usando el analizador de TBXml para analizar los datos.El código es:

NSString *XMLString = [[NSString alloc] initWithContentsOfURL:urlString encoding:NSISOLatin1StringEncoding error:nil];

TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];

Estoy analizando estos datos, pero cuando hay caracteres españoles como " bebés y " My

cadena será " beb ... s y ".Y " Øpor què Albergamos A Alborotadores? " en lugar de " ¿Por qué? Albergamos a alborotadores? ". Ayuda

¿Fue útil?

Solución

Debe descargar los datos XML como binario (NSData) y deje que el analizador maneje la codificación.

NSData *data = [NSData dataWithContentsOfURL:url];

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

Nota El XML debe tener la codificación de contenido como la primera línea, por lo que no es necesario especificar una codificación en código.

Otros consejos

Pruebe con NSutf8StringEncoding

NSString *XMLString = [[NSString alloc] initWithContentsOfURL:urlString encoding:NSUTF8StringEncoding error:nil];

TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];

Actualización:

NSData *dataContent = [[NSData dataWithContentsOfURL:urlString];
NSString *XMLString = [[NSString alloc] initWithData:dataContent encoding:NSISOLatin1StringEncoding];

TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];

Actualización 2: Intente la inicialización de datos

NSData *dataContent = [[NSData dataWithContentsOfURL:urlString];

TBXML *tbxml = [[TBXML alloc] initWithXMLData:XMLString];

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top