9.11.09

Convertendo byte[] para string e string para byte[]

Dias desses estava estudando algumas soluções as quais tinham como premissa a transformação de strings em um array de bytes e vice-versa.

Bom, pesquisei daqui e de lá e encontrei vários artigos aonde mostravam como fazer essa conversão. Todos usavam o objeto System.Text.ASCIIEncoding, mas este link é de um artigo no Erwin's Blog aonde ele mostra como fazer essa conversão quando não se sabe qual enconding usar (But what if you don’t know the encoding type?).

Abixo transcrevo o código que resolve esse nosso problema.


public static byte[] ConvertStringToBytes(string input)
{
System.IO.MemoryStream stream = new System.IO.MemoryStream();
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(stream))
{
writer.Write(input);
writer.Flush();
}
return stream.ToArray();
}

public static string ConvertBytesToString(byte[] bytes)

{
string output = String.Empty;
System.IO.MemoryStream stream = new System.IO.MemoryStream(bytes);
stream.Position = 0;
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream))
{
output = reader.ReadToEnd();
}
return output;
}


Enjoy.

No comments: