2010-09-09 8 views
0

Comment lire et écrire un NSString avec UTF8N? Je l'utilise pour charger un fichier UTF-8 et il semble fonctionner avec UTF-8N.Comment lire et écrire un NSString avec UTF8N?

NSString *string = [NSString stringWithContentsOfFile:destPath encoding:NSUTF8StringEncoding error:&error];

Le problème est quand j'enregistrez le fichier avec

[string writeToFile:tempFile atomically:YES encoding:NSUTF8StringEncoding error:&error];

le fichier est lisible dans un éditeur de texte normal sur l'ordinateur. Je peux quand même lire le fichier en tant que fichier UTF-8.

Qu'est-ce qui me manque?

+3

Qu'est-ce que UTF-8N? – kennytm

+0

Et que vous dit l'éditeur de texte lorsque vous essayez d'ouvrir le fichier? – Wevah

+0

Essayez d'ouvrir votre fichier d'origine et le fichier que votre programme a écrit dans un éditeur hexadécimal et comparez les valeurs de l'octet brut. Cela devrait vous donner une idée de ce qui se passe. Pourrait peut-être être un problème avec une marque de commande d'octet? – Sven

Répondre

0

Un groupe de deviner et vérifier trouvé NSShiftJISStringEncoding a fait l'affaire.

0

Essayez d'écrire la chaîne à déposer sans fournir de codage

 [string writeToFile:tempFile atomically:YES]; 
+0

Cette méthode est obsolète, mais je suppose que cela pourrait être utile pour localiser l'erreur. – Wevah

+0

C'est là que j'ai commencé, mais ça vaut le coup d'essayer je suppose. – respectTheCode

Questions connexes