Foros del Web » Programación para mayores de 30 ;) » .NET »

[C#] Como funciona Byte y Encoding

Estas en el tema de [C#] Como funciona Byte y Encoding en el foro de .NET en Foros del Web. Buenas, Tengo una duda con definición de variables. Tengo esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C#: Ver original byte [ ] raw = wc. DownloadData ( laUrl ...
  #1 (permalink)  
Antiguo 07/09/2015, 08:54
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 4 meses
Puntos: 1
[C#] Como funciona Byte y Encoding

Buenas,

Tengo una duda con definición de variables.

Tengo esto:


Código C#:
Ver original
  1. byte[] raw = wc.DownloadData(laUrl);


Y funciona correctamente.

Sin embargo intento ponerlo así:


Código C#:
Ver original
  1. string raw = wc.DownloadData(laUrl);


Y me subraya la definición de la variable. ¿Qué diferencia hay entre esas dos variables?

He visto que son los sockets también en transmite de mensajes se hace mediante byte[] ¿por qué?


¿Y esta función exactamente que realiza?


Código C#:
Ver original
  1. string webData = System.Text.Encoding.UTF8.GetString(raw);


Parece que se codifica... ¿por qué?

Cualquier información adicional la agradecería.
Gracias.

Saludos.
  #2 (permalink)  
Antiguo 08/09/2015, 03:02
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: [C#] Como funciona Byte y Encoding

Un byte es el valor puro del valor que se lee, por ejemplo 65. En cambio un string es una interpretación de ese valor basada en como se codifica internamente.

Siguiendo el valor 65 de ejemplo del byte. Si lo interpretásemos como un número sería un entero con valor 65. En cambio si lo interpretásemos como un carácter (o un string) sería la letra "A" ya que su valor ASCII es el 65.

Pero claro, como te he dicho el pasar de 65 a "A" depende de que intepretemos el byte como un valor de la tabla ASCII pero hay muchas formas de codificar los caracteres. Y esa es la labor de la siguiente línea:

Código:
System.Text.Encoding.UTF8.GetString(raw)
Coge un array de bytes ("raw") y obtiene el valor en texto basándose en las tablas de caracteres UTF8.

Por las pocas líneas de tu código deduzco que estás intentando usar un WebClient para descargar el contenido de una página web. Si sabes que el contenido es HTML (es decir, texto), puedes usar directamente la función DownloadString.
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: byte, encoding, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:58.