Em .Net, cada string tem um conjunto de caracteres e uma codificação. Uma codificação de caracteres diz ao computador como interpretar zeros brutos e uns em caracteres reais. Normalmente, faz isto através do emparelhamento de números com caracteres. Na verdade, é o processo de transformar um conjunto de caracteres Unicode numa sequência de bytes.
Podemos usar o método Encoding.GetString (Byte) para descodificar todos os bytes na matriz de bytes especificada numa cadeia de caracteres. Vários outros esquemas de descodificação estão também disponíveis na classe Encoding como UTF8, Unicode, UTF32, ASCII, etc. A classe Codificação está disponível como parte do espaço de nomes System.Text.
string result = Encoding.Default.GetString(byteArray);
Exemplo
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(); } }}
Saída
A saída de o código acima é
Byte Array is: 72 101 108 108 111 32 87 111 114 108 100String is: Hello World
É importante notar que devemos usar a mesma codificação para ambas as direcções. Por exemplo, se a matriz de bytes for codificada com ASCII e estivermos a tentar obter a string usando UTF32, não obteremos a string desejada.
Exemplo
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(); } }}
Output
A saída do código acima é