2010-06-15 6 views
1

J'ai une application iPhone utilisant Core Data avec une base de données SQLite dans le bas. J'écris du contenu de texte de la base de données dans un fichier, mais les caractères spéciaux tels que Å, Ä et Ö sont corrompus dans le fichier (ils apparaissent très bien dans l'application).Données de base et caractères spéciaux (UTF-8)

Lors de la création et de l'insertion de données, je n'utilise aucun codage spécial. Je prends juste le NSString (entré par l'utilisateur dans un UITextField) et le met dans mes objets persistants. Lorsque vous enregistrez le fichier, j'utilise le code suivant:

[csvString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

J'ai essayé d'ajouter une nomenclature au début du texte (« \ xef \ xbb \ XBF ») mais il est toujours corrompu. Quelqu'un a des idées où le problème pourrait être?

Exemples de caractères corrompus: å devient ¶, A devient å¤

Répondre

1

Vos exemples de corruptions ressemblent aux caractères UTF-8 interprétés comme ISO-8859-1. Comment visualisez-vous le fichier? Êtes-vous sûr que la visionneuse que vous utilisez interprète réellement le fichier comme UTF-8?

+0

Comme toujours, le problème n'était pas là où je pensais que c'était. Il s'avère que les programmes avec lesquels je lisais les données (OpenOffice Calc et Excel) ne pouvaient pas gérer UTF-8 aussi simplement que je le pensais. Changer le codage en UTF16LittleEndian l'a fait. –

0

Avez-vous essayé de changer l'encodage à NSUTF16StringEncoding?

Questions connexes