2011-02-14 18 views
6

En una página web recibí el texto \ u30ca \ u30bf \ u30ea \ u30a2. Debería traducirse a ナ タ リ ア. Simplemente no sé cómo hacerlo en .NET. Probé HttpUtility.HtmlDecode y cuando eso falló probé HttpUtility.UrlDecode. Sin suerte¿Cómo puedo escapar html unicode en .net?

+0

ok ¿cuál es el resultado que está obteniendo (o error) ... que nos ayudará a rastrear el problema ... mejor si puede mostrarnos el código que está intentando ... puede ser que tenga algunos problemas con Base64 conversiones ... o caracteres UTF16 ... ¿pueden proporcionar más detalles? –

+0

He actualizado mi respuesta –

Respuesta

1

Ok, si se ha escapado su cadena, tendrá que convertir la cadena manualmente en unicode .. o tengo una mejor manera. JSON acepta los caracteres Unicode se escapó y convertirlo en caracteres normales a fin de tratar este (El JavaScriptSerializer está en System.Web.Script.Serialization en System.Web.Extensions.dll):

string d = @"\u30ca\u30bf\u30ea\u30a2"; 
Console.WriteLine("Unicode Escaped:" + d); 
JavaScriptSerializer jr = new JavaScriptSerializer(); 
string dt = jr.Deserialize<string>("\"" + d + "\""); 
Console.WriteLine("Converted:" + dt); 

y la salida es:

Unicode Escaped: \u30ca\u30bf\u30ea\u30a2 

Converted: ナタリア 


Y si todavía quiero hacerlo manualmente n código. esta respuesta con código de SO es lo que quiere:

Convert a Unicode string to an escaped ASCII string

no quiero demasiado tomar el crédito de la publicación de su código.

+1

Creo que dicen que tienen una cadena que contiene las barras diagonales inversas. Ya sabes, así: 'cadena d = @" \ u30ca \ u30bf \ u30ea \ u30a2 ";'. Entonces se preguntan cómo deshacerse de 'd'. – icktoofay

+0

@icktoofay ok He cambiado mi respuesta por eso ... y quien me votó negativamente puede quitar su voto –

+0

Excelente respuesta. –

Cuestiones relacionadas