J'ai reçu le contenu d'un fichier texte retourné dans les valeurs binaires:Byte [] pour ASCII
Byte[] buf = new Byte[size];
stream = File.InputStream;
stream.Read(buf, 0, size);
Comment puis-je convertir en ASCII?
J'ai reçu le contenu d'un fichier texte retourné dans les valeurs binaires:Byte [] pour ASCII
Byte[] buf = new Byte[size];
stream = File.InputStream;
stream.Read(buf, 0, size);
Comment puis-je convertir en ASCII?
Utilisation:
Encoding.ASCII.GetString(buf);
Comme alternative à la lecture d'une des données d'un flux vers un tableau d'octets, vous pouvez laisser le cadre gérer tout et il suffit d'utiliser un StreamReader
mis en place avec un ASCII encodage à lire dans la chaîne. De cette façon, vous n'avez pas à vous préoccuper de la taille de la mémoire tampon ou de la taille des données.
using (var reader = new StreamReader(stream, Encoding.ASCII))
{
string theString = reader.ReadToEnd();
// do something with theString
}
Vous pouvez utiliser:
System.Text.Encoding.ASCII.GetString(buf);
Mais parfois, vous obtiendrez un numéro bizarre au lieu de la chaîne que vous voulez. Dans ce cas, votre chaîne d'origine peut avoir un caractère hexadécimal lorsque vous le voyez. Si c'est le cas, vous pouvez essayer ceci:
System.Text.Encoding.UTF8.GetString(buf);
Ou en dernier recours:
System.Text.Encoding.Default.GetString(bytearray);
Encoding.GetString Method (Byte[]) convertir octets à une chaîne.
En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en une chaîne.
espace de noms: System.Text
Assemblée: mscorlib (dans mscorlib.dll)
Syntaxe
public virtual string GetString(byte[] bytes)
Paramètres
bytes
Type: System.Byte[]
The byte array containing the sequence of bytes to decode.
Valeur de retour
Type de: System.String
Une chaîne contenant les résultats de décodage de la séquence d'octets.
exceptions
ArgumentException - The byte array contains invalid Unicode code points.
ArgumentNullException - bytes is null.
DecoderFallbackException - A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) or DecoderFallback is set to DecoderExceptionFallback.
Remarques
Si les données à convertir est disponible que dans des blocs séquentiels (tels que les données lues à partir d'un courant) ou si le quantité de données est si grande que il doit être divisé en plus petit bl ocks, l'application doit utiliser le décodeur ou le codeur fourni par la méthode GetDecoder ou la méthode GetEncoder , respectivement, d'une classe dérivée .
Voir les commentaires relatifs au Encoding.GetChars pour une discussion plus des techniques de décodage et considérations.
Cela a fonctionné! Il fonctionne également sur *** tout sous-ensemble *** du tampon d'entrée - en utilisant la variation avec deux paramètres supplémentaires: ['ASCIIEncoding.GetString (byte [] octets, int byteIndex, int byteCount)'] (https: // msdn .microsoft.com/fr-fr/library/38b953c8% 28v = vs.110% 29.aspx? cs-save-lang = 1 & cs-lang = csharp # code-snippet-1) (ou sans le troisième paramètre pour le fin du tampon). (Vous pouvez inclure cette information dans votre réponse, pour une réponse plus complète, mais pas explicitement demandé.) –
@PeterMortensen: Merci, vous êtes invités à modifier :) –