2012-11-08 17 views
15

Eventuali duplicati:
Converting Unicode strings to escaped ascii stringConverti in rappresentazione Unicode

Come posso convertire ä... in qualcosa di simile \u0131...?

c'è qualche funzione per fare ciò?

ps:

accanto in questo modo: [spiace :-) @Kendall Frey]

char a = 'ä'; 
string escape = "\\u" + ((int)a).ToString("X").PadLeft(4, '0'); 
+0

@JonSkeet non c'è alcuna funzione PRONTA? –

+6

È pronto per tagliare e incollare ... –

+0

anche il codice 'string.isNullOrEmpty' può essere tagliato e incollato, la mia domanda riguarda uno pronto come' string.isNullOrEmpty' –

risposta

22

Ecco una funzione per convertire un char a una sequenza di escape:

string GetEscapeSequence(char c) 
{ 
    return "\\u" + ((int)c).ToString("X4"); 
} 

E ' non sta andando molto meglio di una nave di linea.

E no, non esiste una funzione integrata per quanto ne so.

+2

Sospetto che ci sia un modo per correggere correttamente il pad sinistro nella stringa di formato invece di chiamare PadLeft ... –

+0

@JonSkeet - Credo semplicemente cambiando in 'ToString (" X4 ")' e lasciando andare il 'PadLeft' fare il trucco. –

+2

@JonSkeet Meglio? –

6

Non esiste una funzione incorporata AFAIK. Ecco una soluzione piuttosto stupida che funziona. Ma Kendall Frey ha fornito una variante molto migliore.

string GetUnicodeString(string s) 
{ 
    StringBuilder sb = new StringBuilder(); 
    foreach (char c in s) 
    { 
     sb.Append("\\u"); 
     sb.Append(String.Format("{0:x4}", (int)c)); 
    } 
    return sb.ToString(); 
} 
Problemi correlati