2011-12-06 4 views
6

So che ci sono molti argomenti a riguardo, MA anche se ho guardato attraverso un gruppo di loro non è riuscito a capire la soluzione .. Sto convertendo il char in esadecimale come questo:Conversione di stringa esadecimale in char

char c = i; 
int unicode = c; 
string hex = string.Format("0x{0:x4}", unicode); 

Domanda: come convertire hex in char indietro?

+0

Stai chiedendo di una stringa esadecimale? – Oded

+0

sì, voglio convertire "stringa hex" di nuovo in char – Min0

risposta

18

Si potrebbe provare:

hex = hex.Substring(2); // To remove leading 0x 
int num = int.Parse(hex, NumberStyles.AllowHexSpecifier); 
char cnum = (char)num; 
+0

'FormatException' -" La stringa non era in un formato corretto ". – Oded

+0

Grazie a @Oded, non ho visto "0x", il mio errore. – Marco

+0

Grazie, questa soluzione funziona perfettamente. – Min0

3
using System; 
using System.Globalization; 

class Sample { 
    static void Main(){ 
     char c = 'あ'; 
     int unicode = c; 
     string hex = string.Format("0x{0:x4}", unicode); 
     Console.WriteLine(hex); 
     unicode = int.Parse(hex.Substring(2), NumberStyles.HexNumber); 
     c = (char)unicode; 
     Console.WriteLine(c); 
    } 
}