iOS - NSJSONSerialization: Impossible de convertir les données de chaîne autour du personnage
J'obtiens cette erreur lors de l'analyse JSON:
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unable to convert data to string around character 73053.) UserInfo=0x1d5d8250 {NSDebugDescription=Unable to convert data to string around character 73053.}
Des suggestions pour résoudre ce problème?
AJOUTÉ
Comme il est dit dans le rapport d'erreur, l'analyseur ne peut pas passer par le caractère à la position 73053, qui est "ø" dans ma réponse JSON. Autant que je sache, des personnages comme le Ø,Å,Æ, etc. ne devrait pas être un problème pour json analyseurs?
Avez-vous vérifier la chaîne de réponse et peut vous le montrer
Assurez-vous que votre réponse JSON valide
J'ai vérifié mon JSON sur JSON validateur, on dirait qu'elle est valide
Pourriez-vous poster votre réponse? Googler que l'erreur est de présenter les résultats de personnes qui ont JSON valide, mais leur réponse est mal formé. ex. stackoverflow.com/questions/9282771/... et stackoverflow.com/questions/9282771/...
nous montrer le json
Assurez-vous que votre réponse JSON valide
J'ai vérifié mon JSON sur JSON validateur, on dirait qu'elle est valide
Pourriez-vous poster votre réponse? Googler que l'erreur est de présenter les résultats de personnes qui ont JSON valide, mais leur réponse est mal formé. ex. stackoverflow.com/questions/9282771/... et stackoverflow.com/questions/9282771/...
nous montrer le json
OriginalL'auteur Oleg | 2013-01-14
Vous devez vous connecter pour publier un commentaire.
Vérifier que les données que vous êtes l'analyse est en fait JSON valide (et pas seulement 'presque' JSON). Cette erreur est connue pour se produire lorsque vous avez un autre format de données qui ne peut pas être analysée comme JSON. Voir par exemple:
iOS 5 JSON l'Analyse des Résultats dans le Cacao Erreur 3840
Vous avez un conteneur de niveau supérieur dans votre JSON trop? Un tableau ou un dictionnaire. Exemple:
Mise à jour
JSON l'encodage par défaut est UTF-8. Spécial/des caractères exotiques ne sont pas un problème pour l'UTF-8, mais s'il vous plaît vous assurer que votre serveur est de retour de son contenu correctement encodés au format UTF-8. Aussi, avez-vous fait quoi que ce soit à dire à votre JSON interpretter d'utiliser un codage différent?
Si votre JSON est à venir à partir d'un service web, mettre l'URL de cette page pour voir ce qu'il a à voir à propos de l'encodage:
http://validator.w3.org/
L'acceptation de votre réponse avec un peu de retard 🙂 a Résolu le problème de l'encodage d'une chaîne de production avec l'encodage UTF-8.
M'aide beaucoup! Parfois côté serveur peuvent rappel nous GBK encodage, ce qui peut provoquer ce problème.Dans ma condition, j'ai remarqué que le codage des données est GBK, donc je convertir manuellement l'encodage de NSUTF8.
OriginalL'auteur occulus
Oui, j'ai le même problème avec un problème de codage et a obtenu l'erreur ci-dessus. J'ai eu la NSData de serveur en tant que
encoding:NSISOLatin1StringEncoding
. J'ai donc eu à le convertir en UTF8 avant de l'analyser à l'aide de NSJSONSerialization.MERCI KARIM!!!
Elle fonctionne.Merci karim
Nice. Cela devrait être accepté de répondre vraiment.
bonjour comment êtes en mesure de voir qui l'encodage est envoyé en retour ? dans votre cas, il a été NSISOlating1stringEncoding, comment puis-je savoir pour le mien, ce qui est envoyé à l'arrière ?
OriginalL'auteur karim
Switf 3
Sa fonctionne, merci beaucoup !
OriginalL'auteur Chandra