2009-03-10 16 views

Respuesta

23

Probar:

 System.Text.Encoding iso_8859_1 = System.Text.Encoding.GetEncoding("iso-8859-1"); 
     System.Text.Encoding utf_8 = System.Text.Encoding.UTF8; 

     // Unicode string. 
     string s_unicode = "abcéabc"; 

     // Convert to ISO-8859-1 bytes. 
     byte[] isoBytes = iso_8859_1.GetBytes(s_unicode); 

     // Convert to UTF-8. 
     byte[] utf8Bytes = System.Text.Encoding.Convert(iso_8859_1, utf_8, isoBytes); 
+0

Ahh, nunca supe sobre el método Convert :) – leppie

+0

Gracias, pero ¿cómo puedo mostrar esto: Response.Write (isoBytes) no funciona? – Tom

+0

byte [] srcBytes = utf_8.GetBytes (srcstr); byte [] tgtBytes = System.Text.Encoding.Convert (utf_8, iso_8859_1, srcBytes); Response.Write (tgtBytes); – Tom

5

.NET Las cadenas son todas UTF-16 internamente. No hay codificación UTF-8 o ISO-8859-1 System.String en .NET. Para obtener la representación binaria de la cadena en una clase particular de codificación uso System.Text.Encoding:

byte[] bytes = Encoding.GetEncoding("iso-8859-1").GetBytes("hello world"); 
+0

Casi;) Cadena UTF8 -> bytes -> ISO-88590-1 cadena – leppie

+0

@leppie: ¿Qué es una cadena UTF8 o ISO-88590-1? ¿Son esos algo más que una secuencia de bytes? –