2012-02-15 16 views

risposta

32

Regex.Unescape ha fatto il trucco:

System.Text.RegularExpressions.Regex.Unescape(@"Sch\u00f6nen"); 

Si noti che è necessario prestare attenzione quando si prova le vostre varianti o test di unità di scrittura: "Sch\u00f6nen" è già "Schönen". È necessario @ davanti alla stringa per trattare \u00f6 come parte della stringa.

1

Se sei arrivato a questa domanda perché vedi "Sch\u00f6nen" (o valori simili \uXXXX in costante di stringa) - non è la codifica. È un modo per rappresentare i caratteri Unicode come sequenza di escape simile a come la stringa rappresenta New Line di \n e Return by \r.

Non penso che sia necessario decodificare.

string unicodestring = "Sch\u00f6nen"; 
Console.WriteLine(unicodestring); 

Schönen è stato emesso.

+0

Bene si presenta come "Sch \ u00f6nen" quando viene emesso dall'emulatore di Windows Phone, quindi è necessario eseguire l'escape. L'utente che ha risposto alla mia domanda e poi ha cancellato il suo post ha ottenuto la risposta corretta, non so perché l'ha cancellato. –

+0

Ho provato nell'applicazione console. La piattaforma WP potrebbe essere diversa. – findcaiyzh

+1

Penso che voi due vi abbiate frainteso :) @findcaiyzh, se aggiorni il tuo esempio con 'string unicodestring =" Sch \\ u00f6nen ";' troverai il caso di cui @M_K sta parlando. Questo scenario è normale quando si lavora con risultati JSON, recuperati da un endpoint remoto. –

0

Hai esaminato le classi System.Text.Encoding? Potreste essere in grado di utilizzare la codifica UTF-8 per decodificare il contenuto della stringa Unicode

+0

Non c'è nulla nelle classi Text.Encoding che rimuove il testo. –

Problemi correlati