Oppure

Loading
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 8:15
Il Totem
C'è di mezzo quel Convert.ToBase64String(byte1); che non si sa cosa debba fare o dove debba stare. L'hai richiamato passandogli byte1, che dichiari solo nel secondo pezzo di codice, quindi devo presumere che l'ordine degli snippet sia invertito.
Inoltre questo:
 byte[] byte1 = Encoding.UTF8.GetBytes(textBox2.Text);             string testo = Encoding.UTF8.GetString(byte1); 

Non ha senso. Infatti passi da textBox2.Text a byte[] e da byte[] a String, ossia ottieni ancora textBox2.Text.
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