Codificación ISO 8859-1 para mostrar el texto en español correctamente en UITYVIEW
-
21-12-2019 - |
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
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];