Codificar tipos base

Los caracteres son entidades abstractas que se pueden representar por medio de muchos esquemas de caracteres y páginas de código diferentes. Por ejemplo, la codificación Unicode UTF-16 representa los caracteres como secuencias de enteros de 16 bits, mientras que Unicode UTF-8 representa los mismos caracteres como secuencias de bytes de 8 bits. Common Language Runtime utiliza Unicode UTF-16 (Unicode Transformation Format, formato de codificación de 16 bits) para representar caracteres.

Las aplicaciones cuyo destino es Common Language Runtime usan la codificación para asignar representaciones de caracteres del esquema de caracteres nativo a otros esquemas. Las aplicaciones utilizan descodificación para asignar caracteres de esquemas no nativos al esquema nativo. En la siguiente tabla se enumeran las clases usadas con más frecuencia en el espacio de nombres System.Text para codificar y descodificar caracteres.

Esquema de caracteres Clase Explicación

Codificación ASCII

System.Text.ASCIIEncoding

Convierte caracteres en y desde ASCII.

Codificación Múltiple

System.Text.Encoding

Convierte caracteres en y desde varias codificaciones, como se especifica en el método Convert.

Codificación UTF-16 Unicode

System.Text.UnicodeEncoding

Convierte en y desde la codificación UTF-16. Este esquema representa los caracteres como enteros de 16 bits.

Codificación UTF-8 Unicode

System.Text.UTF8Encoding

Convierte en y desde la codificación UTF-8. Este esquema de codificación de ancho de variable representa los caracteres utilizando de uno a cuatro bytes.

En el siguiente ejemplo de código se convierte una cadena Unicode en una matriz de bytes con el método ASCIIEncoding.GetBytes. Cada byte de la matriz representa el valor ASCII de la letra que ocupa esa posición en la cadena.

Dim MyString As String = "Encoding String."
Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = AE.GetBytes(MyString)
Dim x as Integer
For x = 0 To ByteArray.Length - 1
   Console.Write("{0} ", ByteArray(x))
Next
string MyString = "Encoding String.";
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = AE.GetBytes(MyString);
for(int x = 0;x <= ByteArray.Length - 1; x++)
{
   Console.Write("{0} ", ByteArray[x]);
}

Este ejemplo siguiente muestra lo siguiente en la consola. El byte 69 es el valor ASCII para el carácter E; el byte 110 es el valor ASCII para el carácter n, etc.

69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46

En el siguiente ejemplo de código se convierte la matriz de bytes anterior en una matriz de caracteres mediante la clase ASCIIEncoding. Para descodificar la matriz de bytes se utiliza el método GetChars.

Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
Dim CharArray As Char() = AE.GetChars(ByteArray)
Dim x As Integer
For x = 0 To CharArray.Length - 1
   Console.Write(CharArray(x))
Next
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
char[] CharArray = AE.GetChars(ByteArray);
for(int x = 0;x <= CharArray.Length - 1; x++)
{
   Console.Write(CharArray[x]);
}

El código anterior muestra el texto Encoding String. en la consola.

Vea también

Referencia

System.Text
System.Text.ASCIIEncoding
System.Text.Encoding
System.Text.UnicodeEncoding
System.Text.UTF7Encoding
System.Text.UTF8Encoding

Otros recursos

Trabajar con tipos base