28/07/11 23:03
DexterELEL
Ragazzi stavo creando un programma per convertire una stringa di testo in una stringa binaria... da Text a Binary tutto bene quando però vado a riconvertire c'è un piccolo problema la stringa di testo originale non è quella... mi spiego meglio..
Ecco il codice
byte[] byte1 = Encoding.UTF8.GetBytes(textBox2.Text);
string testo = Convert.ToBase64String(byte1);
textBox1.Text = testo;
Facendo così se converto "Ciao" mi da "01000011011010010110000101101111" se riconverto il codice binario mi da "MDEwMDAwMTEwMTEwMTAwMTAxMTAwMDAxMDExMDExMTE="
Alternativamente Usando Encoding.UTF8.GetString mi ridà la stessa stringa in binario...
byte[] byte1 = Encoding.UTF8.GetBytes(textBox2.Text);
string testo = Encoding.UTF8.GetString(byte1);
textBox1.Text = testo;
Aiutatemi voi per favore...
Ultima modifica effettuata da DexterELEL 29/07/11 8:34
aaa
29/07/11 14:30
Phil93
Scusa forse non ho ben capito. Encoding.UTF8.GetString() restituisce la stringa originale, quindi qual'è il problema?
Edit riferito al mio commento:
byte[] byte1 = Encoding.UTF8.GetBytes("Una stringa a caso...");
string testo = Encoding.UTF8.GetString(byte1);
Console.WriteLine(testo); // Una stringa a caso...
EDIT2:
string binaryString = "10"; // ovviamente "10" equivale a "00000010"
int number = Convert.ToInt32(binaryString, 2); // number = 2
int number2 = 2;
string binaryString2 = Convert.ToString(number, 2); // binaryString2 = "10"
Qui una semplice funzione per far si che tutte le stringhe binarie abbiamo 8 bit. Chiaramente per numeri maggiori di 255 va modificata...
string EightBits(string binaryString)
{
if (binaryString.Length != 8)
return new string('0', 8 - binaryString.Length) + binaryString;
else
return binaryString;
}
Ultima modifica effettuata da Phil93 01/08/11 17:54
aaa