1 votes

Caractères spéciaux de SQLite DB

Je lis depuis une base de données sqlite vers mon application iphone. Dans les textes, il y a parfois des caractères spéciaux comme 'xf2' ou 'xe0' que je peux voir dans le débogueur dans le type de données char*. Lorsque j'essaie de transformer les caractères en un type de données NSString Objet en utilisant initWithUTF8String je reçois un zéro en retour.

Comment puis-je transformer ces caractères spéciaux ?

0voto

igoris Points 1079

On dirait un problème d'encodage. Vous pouvez obtenir 'xf2' ou 'xe0' lorsque vous avez des symboles tels que © ou ®. Ces symboles nécessitent 2 octets, et sqlite peut interpréter chaque octet du symbole comme un symbole séparé.
Essayez donc d'utiliser non pas initWithUTF8String, mais initWithCString :

NSString *stringFromDB = [[NSString alloc] initWithCString:charsArrayFromDB 
                                                  encoding:NSASCIIStringEncoding];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X