Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase UnicodeEncoding

 

Representa una codificación UTF-16 de caracteres Unicode.

Espacio de nombres:   System.Text
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Text.Encoding
    System.Text.UnicodeEncoding

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class UnicodeEncoding : Encoding

NombreDescripción
System_CAPS_pubmethodUnicodeEncoding()

Inicializa una nueva instancia de la clase UnicodeEncoding.

System_CAPS_pubmethodUnicodeEncoding(Boolean, Boolean)

Inicializa una nueva instancia de la clase UnicodeEncoding. Los parámetros especifican si se usa el orden de bytes big endian y si el método GetPreamble devuelve una marca de orden de bytes Unicode.

System_CAPS_pubmethodUnicodeEncoding(Boolean, Boolean, Boolean)

Inicializa una nueva instancia de la clase UnicodeEncoding. Los parámetros especifican si se usa el orden de bytes big endian, si se proporciona una marca de orden de bytes Unicode y si se produce una excepción cuando se detecta una codificación no válida.

NombreDescripción
System_CAPS_pubpropertyBodyName

Cuando se reemplaza en una clase derivada, obtiene un nombre para la codificación actual que se puede utilizar con etiquetas de cuerpo de un programa de correo.(Heredado de Encoding).

System_CAPS_pubpropertyCodePage

Cuando se reemplaza en una clase derivada, obtiene el identificador de la página de códigos de la clase Encoding actual.(Heredado de Encoding).

System_CAPS_pubpropertyDecoderFallback

Obtiene o establece el objeto DecoderFallback para el objeto Encoding actual.(Heredado de Encoding).

System_CAPS_pubpropertyEncoderFallback

Obtiene o establece el objeto EncoderFallback para el objeto Encoding actual.(Heredado de Encoding).

System_CAPS_pubpropertyEncodingName

Cuando se reemplaza en una clase derivada, obtiene la descripción inteligible de la codificación actual.(Heredado de Encoding).

System_CAPS_pubpropertyHeaderName

Cuando se reemplaza en una clase derivada, obtiene un nombre para la codificación actual que se puede utilizar con etiquetas de encabezado de un programa de correo.(Heredado de Encoding).

System_CAPS_pubpropertyIsBrowserDisplay

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes del explorador pueden utilizar la codificación actual para mostrar el contenido.(Heredado de Encoding).

System_CAPS_pubpropertyIsBrowserSave

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes del explorador pueden utilizar la codificación actual para guardar el contenido.(Heredado de Encoding).

System_CAPS_pubpropertyIsMailNewsDisplay

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes de correo y de noticias pueden utilizar la codificación actual para mostrar el contenido.(Heredado de Encoding).

System_CAPS_pubpropertyIsMailNewsSave

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si los clientes de correo y de noticias pueden utilizar la codificación actual para guardar el contenido.(Heredado de Encoding).

System_CAPS_pubpropertyIsReadOnly

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual es de solo lectura.(Heredado de Encoding).

System_CAPS_pubpropertyIsSingleByte

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual utiliza puntos de código de un solo byte.(Heredado de Encoding).

System_CAPS_pubpropertyWebName

Cuando se reemplaza en una clase derivada, obtiene el nombre registrado en IANA (Internet Assigned Numbers Authority) para la codificación actual.(Heredado de Encoding).

System_CAPS_pubpropertyWindowsCodePage

Cuando se reemplaza en una clase derivada, obtiene la página de códigos del sistema operativo Windows que se corresponde mejor con la codificación actual.(Heredado de Encoding).

NombreDescripción
System_CAPS_pubmethodClone()

Cuando se reemplaza en una clase derivada, crea una copia superficial del objeto Encoding actual.(Heredado de Encoding).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto Object especificado es igual al objeto UnicodeEncoding actual.(Invalida Encoding.Equals(Object)).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetByteCount(Char*, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres a partir del puntero de caracteres especificado.(Invalida Encoding.GetByteCount(Char*, Int32)).

System_CAPS_pubmethodGetByteCount(Char[])

Cuando se reemplaza en una clase derivada, calcula el número de bytes que se generan al codificar todos los caracteres de la matriz de caracteres especificada.(Heredado de Encoding).

System_CAPS_pubmethodGetByteCount(Char[], Int32, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres de la matriz de caracteres especificada.(Invalida Encoding.GetByteCount(Char[], Int32, Int32)).

System_CAPS_pubmethodGetByteCount(String)

Calcula el número de bytes generado al codificar los caracteres de la cadena especificada.(Invalida Encoding.GetByteCount(String)).

System_CAPS_pubmethodGetBytes(Char*, Int32, Byte*, Int32)

Codifica un juego de caracteres a partir del puntero de caracteres especificado en una secuencia de bytes que se almacenan a partir del puntero de bytes especificado.(Invalida Encoding.GetBytes(Char*, Int32, Byte*, Int32)).

System_CAPS_pubmethodGetBytes(Char[])

Cuando se reemplaza en una clase derivada, codifica todos los caracteres de la matriz de caracteres especificada en una secuencia de bytes.(Heredado de Encoding).

System_CAPS_pubmethodGetBytes(Char[], Int32, Int32)

Cuando se reemplaza en una clase derivada, codifica un juego de caracteres de la matriz de caracteres especificada en una secuencia de bytes.(Heredado de Encoding).

System_CAPS_pubmethodGetBytes(Char[], Int32, Int32, Byte[], Int32)

Codifica un juego de caracteres de la matriz de caracteres determinada en la matriz de bytes especificada.(Invalida Encoding.GetBytes(Char[], Int32, Int32, Byte[], Int32)).

System_CAPS_pubmethodGetBytes(String)

Cuando se reemplaza en una clase derivada, codifica todos los caracteres de la cadena especificada en una secuencia de bytes.(Heredado de Encoding).

System_CAPS_pubmethodGetBytes(String, Int32, Int32, Byte[], Int32)

Codifica un juego de caracteres del objeto String especificado en la matriz de bytes especificada.(Invalida Encoding.GetBytes(String, Int32, Int32, Byte[], Int32)).

System_CAPS_pubmethodGetCharCount(Byte*, Int32)

Calcula el número de caracteres generado mediante la descodificación de una secuencia de bytes a partir del puntero de bytes especificado.(Invalida Encoding.GetCharCount(Byte*, Int32)).

System_CAPS_pubmethodGetCharCount(Byte[])

Cuando se reemplaza en una clase derivada, calcula el número de caracteres que se generan al descodificar todos los bytes de la matriz de bytes especificada.(Heredado de Encoding).

System_CAPS_pubmethodGetCharCount(Byte[], Int32, Int32)

Calcula el número de caracteres generado mediante la descodificación de una secuencia de bytes a partir de la matriz de bytes especificada.(Invalida Encoding.GetCharCount(Byte[], Int32, Int32)).

System_CAPS_pubmethodGetChars(Byte*, Int32, Char*, Int32)

Descodifica una secuencia de bytes a partir del puntero de bytes especificado en un juego de caracteres que se almacenan a partir del puntero de caracteres especificado.(Invalida Encoding.GetChars(Byte*, Int32, Char*, Int32)).

System_CAPS_pubmethodGetChars(Byte[])

Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la matriz de bytes especificada en un juego de caracteres.(Heredado de Encoding).

System_CAPS_pubmethodGetChars(Byte[], Int32, Int32)

Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada en un juego de caracteres.(Heredado de Encoding).

System_CAPS_pubmethodGetChars(Byte[], Int32, Int32, Char[], Int32)

Descodifica una secuencia de bytes de la matriz de bytes especificada en la matriz de caracteres especificada.(Invalida Encoding.GetChars(Byte[], Int32, Int32, Char[], Int32)).

System_CAPS_pubmethodGetDecoder()

Obtiene un descodificador que convierte una secuencia de bytes codificada en UTF-16 en una secuencia de caracteres Unicode.(Invalida Encoding.GetDecoder()).

System_CAPS_pubmethodGetEncoder()

Obtiene un codificador que convierte una secuencia de caracteres Unicode en una secuencia de bytes codificada en UTF-16.(Invalida Encoding.GetEncoder()).

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de la instancia actual.(Invalida Encoding.GetHashCode()).

System_CAPS_pubmethodGetMaxByteCount(Int32)

Calcula el número máximo de bytes generado mediante la codificación del número de caracteres especificado.(Invalida Encoding.GetMaxByteCount(Int32)).

System_CAPS_pubmethodGetMaxCharCount(Int32)

Calcula el número máximo de caracteres generado mediante la descodificación del número de bytes especificado.(Invalida Encoding.GetMaxCharCount(Int32)).

System_CAPS_pubmethodGetPreamble()

Devuelve una marca de orden de bytes Unicode codificada en formato UTF-16 si el constructor empleado para esta instancia solicita una marca de orden de bytes.(Invalida Encoding.GetPreamble()).

System_CAPS_pubmethodGetString(Byte*, Int32)

Cuando se reemplaza en una clase derivada, descodifica un número determinado de bytes a partir de una dirección especificada en una cadena.(Heredado de Encoding).

System_CAPS_pubmethodGetString(Byte[])

Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la matriz de bytes especificada en una cadena.(Heredado de Encoding).

System_CAPS_pubmethodGetString(Byte[], Int32, Int32)

Descodifica un intervalo de bytes de una matriz de bytes en una cadena.(Invalida Encoding.GetString(Byte[], Int32, Int32)).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsAlwaysNormalized()

Obtiene un valor que indica si la codificación actual siempre se normaliza, utilizando la forma de normalización predeterminada.(Heredado de Encoding).

System_CAPS_pubmethodIsAlwaysNormalized(NormalizationForm)

Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual siempre se normaliza mediante la forma de normalización especificada.(Heredado de Encoding).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticCharSize

Representa, en bytes, el tamaño de caracteres Unicode. Este campo es una constante.

Codificar es el proceso de transformar un conjunto de caracteres Unicode en una secuencia de bytes. La descodificación es el proceso de transformar una secuencia de bytes codificados en un conjunto de caracteres Unicode.

El Unicode Standard asigna un punto de código (un número) a cada carácter en todos los scripts admitidos. Un formato de transformación Unicode (UTF) es un método para codificar ese punto de código. El Unicode Standard utiliza las siguientes codificaciones UTF:

  • UTF-8, que representa cada punto de código como una secuencia de uno a cuatro bytes.

  • UTF-16, que representa cada punto de código como una secuencia de uno o dos enteros de 16 bits.

  • UTF-32, que representa cada punto de código como un entero de 32 bits.

Para obtener más información sobre las codificaciones UTF y otras codificaciones admitidas por System.Text, consulte Codificación de caracteres en .NET Framework.

La UnicodeEncoding clase representa una codificación UTF-16. El codificador puede usar el orden de bytes big endian (byte más significativo primero) o poco orden de bytes endian (byte menos significativo primero). Por ejemplo, la letra mayúscula latina (punto de código u+0041) se serializa como sigue (en hexadecimal):

  • Orden de bytes big-endian: 00 00 00 41

  • Orden de bytes endian little: 41 00 00 00

Es normalmente más eficaz para almacenar caracteres Unicode utilizando el orden de bytes nativo de una plataforma concreta. Por ejemplo, es mejor utilizar el orden de bytes endian poco en plataformas little-endian, como equipos Intel. La UnicodeEncoding clase corresponde a las páginas de código de Windows 1200 (orden de bytes endian poco) y 1201 (orden de bytes big-endian). Puede determinar el "endian" de una determinada arquitectura llamando el BitConverter.IsLittleEndian método.

Opcionalmente, la UnicodeEncoding objeto proporciona una marca de orden de bytes (BOM), que es una matriz de bytes que se puede anteponer a la secuencia de bytes resultante del proceso de codificación. Si el preámbulo contiene una marca de orden de bytes (BOM), ayudará al descodificador a determinar el orden de bytes y el formato de la transformación o UTF.

Si el UnicodeEncoding instancia está configurada para proporcionar una lista de materiales, se puede recuperar llamando el GetPreamble método; en caso contrario, el método devuelve una matriz vacía. Tenga en cuenta que, aunque un UnicodeEncoding objeto está configurado para admitir BOM, se debe incluir la lista de materiales al principio de la secuencia de bytes codificada según corresponda; los métodos de codificación de la UnicodeEncoding clase no lo hace automáticamente.

Para habilitar la detección de errores y hacer que la instancia de clase sea más segura, debe crear una instancia un UnicodeEncoding objeto llamando el UnicodeEncoding(Boolean, Boolean, Boolean) constructor y estableciendo su throwOnInvalidBytes argumento true. Con la detección de errores, un método que detecta una secuencia de caracteres o bytes no válida inicia una ArgumentException. Sin detección de errores, se inicia ninguna excepción, y generalmente se omite la secuencia no válida.

Puede crear instancias de un UnicodeEncoding objeto de varias maneras, dependiendo de si desea que se proporciona una marca de orden de bytes (BOM), si desea que la codificación big-endian o little-endian y si desea habilitar la detección de errores. La siguiente tabla se enumeran los UnicodeEncoding constructores y Encoding propiedades que devuelven un UnicodeEncoding objeto.

Miembro

Modos endian

LISTA DE MATERIALES

Detección de errores

BigEndianUnicode

Big-endian

Si

Ninguna (reserva de reemplazo)

Encoding.Unicode

Little-endian

Si

Ninguna (reserva de reemplazo)

UnicodeEncoding.UnicodeEncoding()

Little-endian

Si

Ninguna (reserva de reemplazo)

UnicodeEncoding(Boolean, Boolean)

Configurable

Configurable

Ninguna (reserva de reemplazo)

UnicodeEncoding.UnicodeEncoding(Boolean, Boolean, Boolean)

Configurable

Configurable

Configurable

El GetByteCount método determina cuántos bytes resultan de codificar un juego de caracteres Unicode y el GetBytes método realiza la codificación real.

Del mismo modo, el GetCharCount método determina el número de caracteres resultante de descodificar una secuencia de bytes y el GetChars y GetString métodos realizan la descodificación real.

Para un codificador o descodificador que puede guardar información de estado cuando la codificación o descodificación de datos que abarca varios bloques (por ejemplo, la cadena de caracteres de 1 millón que está codificado en segmentos de carácter 100.000), use el GetEncoder y GetDecoder Propiedades, respectivamente.

En el ejemplo siguiente se muestra cómo codificar una cadena de caracteres Unicode en una matriz de bytes utilizando un UnicodeEncoding objeto. La matriz de bytes se descodifica en una cadena para demostrar que no hay ninguna pérdida de datos.

using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        // The encoding.
        UnicodeEncoding unicode = new UnicodeEncoding();

        // Create a string that contains Unicode characters.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside the traditional ASCII code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        Byte[] encodedBytes = unicode.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();

        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = unicode.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    }
}

En el ejemplo siguiente se utiliza la misma cadena que el anterior, excepto en que escribe los bytes codificados en un archivo y prefijos de la secuencia de bytes con una marca de orden de bytes (BOM). A continuación, lee el archivo de dos maneras: como un archivo de texto mediante un StreamReader objeto; y como un archivo binario. Como cabría esperar, en ningún caso es la lista de materiales incluido en la cadena que se acaba de leer.

using System;
using System.IO;
using System.Text;

public class Example
{
   public static void Main()
   {
        // Create a UTF-16 encoding that supports a BOM.
        Encoding unicode = new UnicodeEncoding();

        // A Unicode string with two characters outside an 8-bit code range.
        String unicodeString =
            "This Unicode string has 2 characters outside the " +
            "ASCII range: \n" +
            "Pi (\u03A0)), and Sigma (\u03A3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);
        Console.WriteLine();

        // Encode the string.
        Byte[] encodedBytes = unicode.GetBytes(unicodeString);
        Console.WriteLine("The encoded string has {0} bytes.\n",
                          encodedBytes.Length);

        // Write the bytes to a file with a BOM.
        var fs = new FileStream(@".\UTF8Encoding.txt", FileMode.Create);
        Byte[] bom = unicode.GetPreamble();
        fs.Write(bom, 0, bom.Length);
        fs.Write(encodedBytes, 0, encodedBytes.Length);
        Console.WriteLine("Wrote {0} bytes to the file.\n", fs.Length);
        fs.Close();

        // Open the file using StreamReader.
        var sr = new StreamReader(@".\UTF8Encoding.txt");
        String newString = sr.ReadToEnd();
        sr.Close();
        Console.WriteLine("String read using StreamReader:");
        Console.WriteLine(newString);
        Console.WriteLine();

        // Open the file as a binary file and decode the bytes back to a string.
        fs = new FileStream(@".\UTF8Encoding.txt", FileMode.Open);
        Byte[] bytes = new Byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();

        String decodedString = unicode.GetString(encodedBytes);
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
   }
}
// The example displays the following output:
//    Original string:
//    This Unicode string has 2 characters outside the ASCII range:
//    Pi (π), and Sigma (Σ).
//
//    The encoded string has 172 bytes.
//
//    Wrote 174 bytes to the file.
//
//    String read using StreamReader:
//    This Unicode string has 2 characters outside the ASCII range:
//    Pi (π), and Sigma (Σ).
//
//    Decoded bytes:
//    This Unicode string has 2 characters outside the ASCII range:
//    Pi (π), and Sigma (Σ).

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: