
Utilizar la clase de codificación
La aplicación puede utilizar el método GetEncoding para devolver un objeto de codificación para una codificación determinada. La aplicación puede utilizar el método GetBytes para convertir una cadena Unicode en su representación de bytes en una codificación determinada.
En el ejemplo de código siguiente se utiliza el método GetEncoding para crear un objeto de codificación de destino para una página de códigos determinada. El objeto de codificación de destino llama al método GetBytes para convertir una cadena Unicode en su representación de bytes en la codificación de destino. Se muestran las representaciones de bytes de las cadenas de las páginas de código especificadas.
Imports System
Imports System.IO
Imports System.Globalization
Imports System.Text
Public Class Encoding_UnicodeToCP
Public Shared Sub Main()
' Converts ASCII characters to bytes.
' Displays the string's byte representation in the
' specified code page.
' Code page 1252 represents Latin characters.
PrintCPBytes("Hello, World!", 1252)
' Code page 932 represents Japanese characters.
PrintCPBytes("Hello, World!", 932)
' Converts Japanese characters.
PrintCPBytes("\u307b,\u308b,\u305a,\u3042,\u306d",1252)
PrintCPBytes("\u307b,\u308b,\u305a,\u3042,\u306d",932)
End Sub
Public Shared Sub PrintCPBytes(str As String, codePage As Integer)
Dim targetEncoding As Encoding
Dim encodedChars() As Byte
' Gets the encoding for the specified code page.
targetEncoding = Encoding.GetEncoding(codePage)
' Gets the byte representation of the specified string.
encodedChars = targetEncoding.GetBytes(str)
' Prints the bytes.
Console.WriteLine("Byte representation of '{0}' in CP '{1}':", _
str, codePage)
Dim i As Integer
For i = 0 To encodedChars.Length - 1
Console.WriteLine("Byte {0}: {1}", i, encodedChars(i))
Next i
End Sub
End Class
using System;
using System.IO;
using System.Globalization;
using System.Text;
public class Encoding_UnicodeToCP
{
public static void Main()
{
// Converts ASCII characters to bytes.
// Displays the string's byte representation in the
// specified code page.
// Code page 1252 represents Latin characters.
PrintCPBytes("Hello, World!",1252);
// Code page 932 represents Japanese characters.
PrintCPBytes("Hello, World!",932);
// Converts Japanese characters to bytes.
PrintCPBytes("\u307b,\u308b,\u305a,\u3042,\u306d",1252);
PrintCPBytes("\u307b,\u308b,\u305a,\u3042,\u306d",932);
}
public static void PrintCPBytes(string str, int codePage)
{
Encoding targetEncoding;
byte[] encodedChars;
// Gets the encoding for the specified code page.
targetEncoding = Encoding.GetEncoding(codePage);
// Gets the byte representation of the specified string.
encodedChars = targetEncoding.GetBytes(str);
// Prints the bytes.
Console.WriteLine
("Byte representation of '{0}' in Code Page '{1}':", str,
codePage);
for (int i = 0; i < encodedChars.Length; i++)
Console.WriteLine("Byte {0}: {1}", i, encodedChars[i]);
}
}
Nota: |
|---|
| Si utiliza este código en una aplicación de consola, los elementos de texto Unicode especificados podrían no mostrarse correctamente. La compatibilidad para los caracteres Unicode en el entorno de la consola varía, en función de la versión del sistema operativo Windows que esté utilizando. |
Puede utilizar esos métodos en una aplicación de ASP.NET para determinar la codificación que se debe utilizar para los caracteres de respuesta. La aplicación debe establecer el valor de la propiedad ContentEncoding en el valor devuelto por el método correspondiente. En el siguiente ejemplo de código se muestra cómo establecer la propiedad HttpResponse.ContentEncoding.
' Explicitly sets ContentEncoding to UTF-8.
Response.ContentEncoding = Encoding.UTF8
' Sets ContentEncoding using the name of an encoding.
Response.ContentEncoding = Encoding.GetEncoding(name)
' Sets ContentEncoding using a code page number.
Response.ContentEncoding = Encoding.GetEncoding(codepageNumber)
// Explicitly sets the encoding to UTF-8.
Response.ContentEncoding = Encoding.UTF8;
// Sets ContentEncoding using the name of an encoding.
Response.ContentEncoding = Encoding.GetEncoding(name);
// Sets ContentEncoding using a code page number.
Response.ContentEncoding = Encoding.GetEncoding(codepageNumber);
En la mayoría de las aplicaciones ASP.NET, debe hacer coincidir el valor de la propiedad ContentEncoding con el de la propiedad ContentEncoding con el objetivo de mostrar el texto con la codificación que espera el usuario.
Para obtener más información sobre cómo utilizar codificaciones en ASP.NET, vea el ejemplo de varias codificaciones en el Tutorial rápido de tareas comunes y el ejemplo de configuración de referencia cultural y codificación en el Tutorial rápido de ASP.NET.