Come convertire array di byte in stringa?
Domanda
Ho struttura come segue:
Dati struct {Int no; string name; int id};
sto convertendo tale struttura in ByteArray. Ho bisogno di convertire questo nuovo nel formato di struttura. Per questo ho bisogno di convertire primi membri in intero e stringa. Come convertire ByteArray nella struttura?
Soluzione
Controlla la BitConverter
classe. Ecco un esempio di come convertire array di byte a int .
Per BitConverter
conversione di stringhe non è molto utile (come Marc mentiones nel suo commento), anche se ha il metodo Tochar (). È possibile utilizzare ASCIIEncoding
, UTF8Encoding
o una qualsiasi delle altre classi XxxEncoding nel System.Text
namespace, invece.
Nota, questo è Net specifica.
Altri suggerimenti
Beh, la risposta in realtà dipende da come stai convertendo la struttura in array di byte. In teoria, è necessario eseguire le stesse operazioni in ordine inverso!
Per esempio, se si serializzare la struttura in modo tale che:
- primi 4 byte = no
- secondo 4 byte = id
- byte riposo = flusso di byte di caratteri nel nome
quindi per convertire la matrice di byte di nuovo alla struttura, è sufficiente definire una variabile di quel tipo di struttura e assegnare i membri con i valori convertiti da array di byte!
Si noti che molte piattaforme includono strumenti per questo scopo; mentre si possono scrivere personalizzato [de] codice di serializzazione, può diventare noioso molto rapidamente.
Per esempio, Google buffer di protocollo è un meccanismo indipendente dal linguaggio * per descrivere una formato filo. È tecnicamente possibile ottenere una migliore (più piccolo) serializzazione se si fa tutto a mano, ma sarà molto più lavoro ...
* = C ++, Java, ecc nel repository Google - oltre a molto altro ancora dalla comunità