Lire le fichier dans le tableau d'octets est différente de la chaîne
J'ai un fichier dans visual studio avec le contenu suivant:"{"Name":"Pete"}"
Si je lis le fichier avec le code suivant, il semble pour créer une chaîne avec la valeur d'origine:
byte[] byteArray = System.IO.File.ReadAllBytes(filePath);
string jsonResponse = System.Text.Encoding.UTF8.GetString(byteArray);
Cependant, la chaîne est effectivement différente de la version qui existe si j'utilise le code suivant:
string jsonResponse = "{\"Name\":\"Pete\"}";
Pourquoi? (La raison pour laquelle je pense que c'est différent parce que quand je passe chaque version d'un json deserializer il se comporte différemment)
Grâce.
De quelle façon est la chaîne de caractères différents?
quels sont exactement le contenu du fichier? vous pouvez publier qu'un code-block sans entourant les guillemets (mais avec toutes les citations qui sont réellement dans le fichier), alors nous pouvons être sûrs exactement le contenu? Aussi - je suppose que c'était enregistré avec l'UTF8?
C'est ce qui est dans le fichier:{"Contact":"Pete"} Fondamentalement, il commence avec un support, et se termine par un crochet, et a été créé avec VS2008.
Alors la solution est simple: Votre fichier contient "Contact", alors que votre chaîne contient "Nom". 😉
eh bien, en quelque sorte, mais le point est que le json deserializer que j'utilise est de se plaindre à propos de la version qui est lu à partir du fichier. Quand je l'ai vue dans la fenêtre de débogage de la chaîne ressemble à ceci: {\"Contact\":\"Pete\"} (Il y a un petit point juste avant la parenthèse ouvrante qui ne s'affiche pas dans ce commentaire
quels sont exactement le contenu du fichier? vous pouvez publier qu'un code-block sans entourant les guillemets (mais avec toutes les citations qui sont réellement dans le fichier), alors nous pouvons être sûrs exactement le contenu? Aussi - je suppose que c'était enregistré avec l'UTF8?
C'est ce qui est dans le fichier:{"Contact":"Pete"} Fondamentalement, il commence avec un support, et se termine par un crochet, et a été créé avec VS2008.
Alors la solution est simple: Votre fichier contient "Contact", alors que votre chaîne contient "Nom". 😉
eh bien, en quelque sorte, mais le point est que le json deserializer que j'utilise est de se plaindre à propos de la version qui est lu à partir du fichier. Quand je l'ai vue dans la fenêtre de débogage de la chaîne ressemble à ceci: {\"Contact\":\"Pete\"} (Il y a un petit point juste avant la parenthèse ouvrante qui ne s'affiche pas dans ce commentaire
OriginalL'auteur Journeyman | 2011-04-19
Vous devez vous connecter pour publier un commentaire.
Donné votre dernier commentaire à la question, je soupçonne que le problème, c'est que vous avez un marque d'ordre d'octet au début du fichier. Essayez de charger le fichier comme ceci à la place:
Je croire que la bande de la NOMENCLATURE pour vous. Sinon, vous pouvez essayer explicitement coupe vous-même:
OriginalL'auteur Jon Skeet
J'imagine que vous avez une terminaison de saut de ligne dans votre fichier.
Vous pouvez facilement vérifier si les deux phrases ont le même contenu en C# en comparant avec
a == b
.Voici un petit exemple de code qui peuvent vous aider à identifier le problème. Les chaînes sont de sortie entouré par
< >
, ce qui devrait vous aider à identifier les entourant d'espaces (qui, en passant, peut être enlevé à l'aide d' Chaîne de caractères.Garniture).OriginalL'auteur Heinzi