Estoy desarrollando una aplicación que admite 4 idiomas diferentes. Uno de los idiomas es el árabe. Fuente OpenSans usada en toda la aplicación

Me estoy poniendo por debajo de la respuesta json,

"card_description" = "\U00d9\U0160\U00d9\U2026\U00d9\U0192\U00d9\U2020\U00d9\U0192 \U00d8\U00b1\U00d9\U0192\U00d9\U02c6\U00d8\U00a8 \U00d8\U00a7\U00d9\U201e\U00d8\U00af\U00d8\U00b1\U00d8\U00a7\U00d8\U00ac\U00d8\U00a9 \U00d9\U02c6\U00d8\U00a7\U00d9\U201e\U00d8\U00aa\U00d9\U2020\U00d9\U201a\U00d9\U201e \U00d8\U00a8\U00d9\U2021\U00d8\U00a7 \U00d8\U00b9\U00d8\U00a8\U00d8\U00b1 \U00d8\U00a7\U00d9\U201e\U00d9\U0192\U00d8\U00ab\U00d9\U0160\U00d8\U00b1 \U00d9\U2026\U00d9\U2020
\n\U00d8\U00a7\U00d9\U201e\U00d9\U2026\U00d8\U00af\U00d9\U2020 \U00d9\U02c6\U00d8\U00a7\U00d9\U201e\U00d8\U00a8\U00d9\U201e\U00d8\U00af\U00d8\U00a7\U00d8\U00aa \U00d9\U0081\U00d9\U0160 \U00d8\U00a7\U00d9\U201e\U00d8\U00af\U00d8\U00a7\U00d9\U2020\U00d9\U2026\U00d8\U00a7\U00d8\U00b1\U00d9\U0192";

Al convertirlo en UTF8String, obtengo el siguiente resultado después de ejecutar la aplicación en el simulador.

enter image description here

Se usa debajo del código para mostrar el texto en la etiqueta,

[cell.btnDescription setTitle:[NSString stringWithUTF8String:[[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] cStringUsingEncoding:NSUTF8StringEncoding]] forState:UIControlStateNormal];

No estoy obteniendo el resultado correcto del idioma árabe.

¿Alguien puede ayudarme?

Gracias de antemano.

0
iGatiTech 6 abr. 2017 a las 13:29

2 respuestas

La mejor respuesta

No necesita hacer el siguiente código para descifrar el contenido árabe.

[cell.btnDescription setTitle:[NSString stringWithUTF8String:[[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] cStringUsingEncoding:NSUTF8StringEncoding]] forState:UIControlStateNormal];

Todo viene de JSON y decodificarán / codificarán eso, he enfrentado el mismo problema con mi aplicación árabe, y lo que hizo el desarrollador de JSON es que agregaron una función de encabezado, es decir

  1. header('Content-type: application/json;charset=utf-8');

Y decodifica el valor mediante esta función a continuación:

  1. html_entity_decode

Sigue la imagen a continuación, puede ayudarte.

enter image description here

Gracias

1
Abhishek Mitra 6 abr. 2017 a las 11:38

Creo que no necesita convertir a UTFString. Simplemente use el siguiente código que se debe usar para otros idiomas:

[cell.btnDescription setTitle:[[arrCards objectAtIndex:indexPath.row] valueForKey:wCARD_DESC] forState:UIControlStateNormal];

Y no se preocupe por la respuesta JSON, el texto en árabe se mostrará así solo en el registro.

1
Parth Patoliya 6 abr. 2017 a las 10:53