Comment lire byte[] à l'encodage en utilisant des streamreader
Je voudrais lire byte[]
à l'aide de C# avec le courant de l'encodage du fichier.
Comme écrit dans la MSDN, le codage par défaut sera UTF-8 lorsque le constructeur n'a pas de encoding:
var reader = new StreamReader(new MemoryStream(data)).
J'ai aussi essayé cela, mais encore obtenir le fichier en UTF-8:
var reader = new StreamReader(new MemoryStream(data),true)
J'ai besoin de lire byte[]
avec le codage en cours.
Votre question n'a pas de sens - un tableau d'octets n'est pas un codage. C'est juste des données binaires. Si votre fichier comporte des données binaires, vous ne devriez pas utiliser
Si nous parlons de l'encodage du fichier, la question est peut-être un doublon de stackoverflow.com/questions/4520184/...
Penseriez-vous d'écrire un article sur données binaires,des cordes, de l'encodage, etc ... (Si vous ne l'avez pas encore) Car je vois beaucoup de question similaire à ceci (stackoverflow.com/questions/16597920/...) et c'est très dur pour nous (les non-locuteurs de l'anglais) pour expliquer.
Marc Gravel a écrit un bon un, il y a un moment: marcgravell.blogspot.co.royaume-uni/2013/02/...
j'ai trouvé ce post: social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/...
StreamReader
à tous... vous devriez utiliser un Stream
.Si nous parlons de l'encodage du fichier, la question est peut-être un doublon de stackoverflow.com/questions/4520184/...
Penseriez-vous d'écrire un article sur données binaires,des cordes, de l'encodage, etc ... (Si vous ne l'avez pas encore) Car je vois beaucoup de question similaire à ceci (stackoverflow.com/questions/16597920/...) et c'est très dur pour nous (les non-locuteurs de l'anglais) pour expliquer.
Marc Gravel a écrit un bon un, il y a un moment: marcgravell.blogspot.co.royaume-uni/2013/02/...
j'ai trouvé ce post: social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/...
OriginalL'auteur Ori | 2013-05-16
Vous devez vous connecter pour publier un commentaire.
Un fichier n'a pas d'encodage. Un tableau d'octets n'a pas d'encodage. Un octet a pas de codage. L'encodage est quelque chose qui transforme les octets de texte et vice versa.
Ce que vous voyez dans les éditeurs de texte, est en fait le programme magic: L'éditeur essaie de différents codages, puis devine qui on fait le plus de sens. C'est aussi ce que vous activez le paramètre booléen. Si cela ne produit pas ce que vous voulez, puis cette magie échoue.
va utiliser le système d'exploitation/de l'Emplacement spécifique de codage par défaut. Si c'est toujours pas ce que vous voulez, alors vous devez être totalement explicite, et dites-le streamreader ce exact encodage à utiliser, par exemple (un peu comme un exemple, vous avez dit que vous ne voulez pas l'UTF8):
OriginalL'auteur Jan Doerrenhaus
J'ai juste essayé en tirant parti de différentes façon d'essayer de comprendre le ByteEncoding et il n'est pas possible de le faire tant que le tableau d'octets ne dispose pas d'un codage en place comme Jan mentionne dans sa réponse. Cependant, vous pouvez toujours prendre de la valeur et de faire le type de conversion en UTF8 ou ASCII/Unicode et le test de la chaîne de valeurs dans le cas où vous faites un "Texte.EncodingFormat.GetString(byte [] tableau)"
OriginalL'auteur Ishwar Nataraj