In .Net heeft elke string een tekenset en een tekencodering. Een tekencodering vertelt de computer hoe hij ruwe nullen en enen moet interpreteren in echte tekens. Meestal gebeurt dit door getallen aan tekens te koppelen. Eigenlijk is het het proces van het omzetten van een set Unicode karakters in een opeenvolging van bytes.
We kunnen Encoding.GetString Method (Byte) gebruiken om alle bytes in de opgegeven byte-array in een string te decoderen. Verscheidene andere decoderingsschema’s zijn ook beschikbaar in de Encoding klasse, zoals UTF8, Unicode, UTF32, ASCII enz. De Encoding klasse is beschikbaar als onderdeel van System.Text namespace.
string result = Encoding.Default.GetString(byteArray);
Example
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(); } }}
Uitvoer
De uitvoer van de bovenstaande code is
Byte Array is: 72 101 108 108 111 32 87 111 114 108 100String is: Hello World
Het is belangrijk op te merken dat we voor beide richtingen dezelfde encoding moeten gebruiken. Als de byte array bijvoorbeeld is gecodeerd met ASCII en we proberen de string te krijgen met UTF32, krijgen we niet de gewenste string.
Example
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(); } }}
Uitvoer
De uitvoer van de bovenstaande code is