Articles

Wie konvertiert man in C# ein Byte-Array in einen String?

Posted on

In .Net hat jeder String einen Zeichensatz und eine Kodierung. Eine Zeichenkodierung sagt dem Computer, wie er rohe Nullen und Einsen in echte Zeichen interpretieren soll. Normalerweise tut er dies, indem er Zahlen mit Zeichen paart. Eigentlich ist es der Prozess der Umwandlung eines Satzes von Unicode-Zeichen in eine Folge von Bytes.

Wir können die Encoding.GetString-Methode (Byte) verwenden, um alle Bytes im angegebenen Byte-Array in einen String zu dekodieren. Verschiedene andere Dekodierungsschemata sind ebenfalls in der Encoding-Klasse verfügbar, z. B. UTF8, Unicode, UTF32, ASCII usw. Die Klasse Encoding ist als Teil des Namespace System.Text verfügbar.

string result = Encoding.Default.GetString(byteArray);

Beispiel

Live Demo

using System;using System.Text;namespace DemoApplication { public class Program { static void Main(string args) { byte byteArray = Encoding.Default.GetBytes("Hello World"); Console.WriteLine($"Byte Array is: {string.Join(" ", byteArray)}"); string str = Encoding.Default.GetString(byteArray); Console.WriteLine($"String is: {str}"); Console.ReadLine(); } }}

Ausgabe

Die Ausgabe von obigen Codes ist

Byte Array is: 72 101 108 108 111 32 87 111 114 108 100String is: Hello World

Es ist wichtig zu beachten, dass wir die gleiche Kodierung für beide Richtungen verwenden sollten. Wenn z. B. das Byte-Array mit ASCII kodiert ist und wir versuchen, die Zeichenfolge mit UTF32 zu erhalten, werden wir nicht die gewünschte Zeichenfolge erhalten.

Beispiel

Live-Demo

using System;using System.Text;namespace DemoApplication { public class Program { static void Main(string args) { byte byteArray = Encoding.ASCII.GetBytes("Hello World"); Console.WriteLine($"Byte Array is: {string.Join(" ", byteArray)}"); string str = Encoding.UTF32.GetString(byteArray); Console.WriteLine($"String is: {str}"); Console.ReadLine(); } }}

Ausgabe

Die Ausgabe des obigen Codes ist

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.