J'ai reçu le contenu d'un fichier texte renvoyé sous forme de valeurs binaires:
Byte[] buf = new Byte[size];
stream = File.InputStream;
stream.Read(buf, 0, size);
Comment puis-je convertir cela en ASCII?
Utilisation:
Vous pouvez utiliser:
System.Text.Encoding.ASCII.GetString(buf);
Mais parfois, vous obtiendrez un nombre étrange à la place de la chaîne souhaitée. Dans ce cas, votre chaîne d'origine peut comporter un caractère hexadécimal lorsque vous la 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.ASCII.GetString(buf);
Au lieu de lire les données d’un flux dans un tableau d’octets, vous pouvez laisser le framework gérer tout et utiliser simplement un StreamReader
configuré avec un ASCII encodage pour lire dans la chaîne. Ainsi, vous n’aurez plus à vous soucier d’obtenir la taille de tampon appropriée ou des tailles de données plus grandes.
using (var reader = new StreamReader(stream, Encoding.ASCII))
{
string theString = reader.ReadToEnd();
// do something with theString
}
Encoding.GetString, méthode (Byte []) convertir les octets en 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
Assembly : 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 : System.String
Chaîne contenant les résultats du décodage de la séquence d'octets spécifiée.
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 ne sont disponibles que dans des blocs séquentiels (telles que des données lues dans un flux) ou si la quantité de données est si importante qu'elle doit être divisée en blocs plus petits, l'application doit utiliser le décodeur ou l'encodeur fourni. par la méthode GetDecoder ou la méthode GetEncoder, respectivement, d'une classe dérivée.
Voir les remarques sous Encodage.GetChars pour plus de détails sur les techniques et les considérations de décodage.