La différence entre le Codage.UTF8.GetBytes et UTF8Encoding.Par défaut.GetBytes
Quelqu'un peut-il svp m'expliquer quelle est la différence pari. L'encodage.UTF8.GetBytes et UTF8Encoding.Par défaut.GetBytes? En fait, je suis en train de convertir une chaîne de caractères XML dans un objet de flux de données et ce qui arrive maintenant est chaque fois que j'utilise cette ligne:
MemoryStream stream = new MemoryStream(UTF8Encoding.Default.GetBytes(xml));
qu'il me donne une erreur "le Système.Xml.XmlException: caractère non Valide dans le codage donnée"
mais quand j'utilise cette ligne, il fonctionne très bien:
**MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(xml));**
Même si il semble être l'encodage UTF8 dans les deux cas, comment on travaille et que l'autre ne l'est pas?
OriginalL'auteur user972255 | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de
UTF8Encoding.Default
de la propriété. Lorsque vous écrivez cela, vous êtes en fait le retour de la classe de base statique de la propriété,Encodage.Default
, ce qui n'est pas de l'utf-8 (c'est le système par défaut de code ANSI-le codage de la page).Ainsi, les deux seront de retour des résultats très différents - depuis
UTF8Encoding.Default
est en faitEncoding.Default
, il vous reviendra de la même chose que si vous utilisezASCIIEncoding.Default
ou l'un des autresSystem.Text.Encoding
sous-classes.La bonne façon d'utiliser
UTF8Encoding
est avec un exemple que vous créez, tels que:La ci-dessus doivent fournir les mêmes résultats que:
Modifier "La propriété façon d'utiliser UTF8Encoding" être "Le bon"... ne me laisse pas le modifier car il est à seulement 2 modification de caractère.
Merci - fixe
Grâce Reed. Je suis clair maintenant 🙂
+1 pour la réponse exacte de la question. @user972255 - veuillez éviter de manipulation de chaîne lors de la création de XML - vous probablement faire face à des problèmes avec l'encodage incompatibilité dès que votre XML contient des caractères non-ASCII. À l'aide de
XmlDocument
,XDocument
ouXmlWriter
méthodes pour enregistrer XML pourMemoryStream
vous sauver, vous et les utilisateurs de vos données certains significative de la douleur traiter avec les fichiers XML non valide.OriginalL'auteur Reed Copsey