Codificar es el proceso de transformar un conjunto de caracteres Unicode en una secuencia de bytes. Descodificar es el proceso inverso; es transformar una secuencia de bytes codificados en un conjunto de caracteres Unicode.
El estándar Unicode asigna un punto de código (un número) a cada carácter en todas las secuencias de comandos compatibles. Un Formato de transformación Unicode (UTF) es un método para codificar ese punto de código. El estándar Unicode versión 3.2 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 a dos enteros de 16 bits.
-
UTF-32, que representa cada punto de código como un entero de 32 bits.
El método GetByteCount determina cuántos bytes resultan de codificar un conjunto de caracteres Unicode, y el método GetBytes realiza la codificación real.
Igualmente, el método GetCharCount determina el número de caracteres resultante en la descodificación de una secuencia de bytes, y los métodos GetChars y GetString realizan la descodificación real.
Opcionalmente, UTF8Encoding proporciona un preámbulo, 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 (punto de código U+FEFF), ayudará al descodificador a determinar el orden de bytes y el formato de la transformación o UTF. La marca de orden de bytes Unicode se serializa como EF BB BF (en hexadecimal). El método GetPreamble devuelve una matriz de bytes que contiene la marca de orden de bytes.
Para obtener más información acerca de la codificación Unicode, del orden de bytes y de la marca de orden de bytes, vea el estándar Unicode en www.unicode.org.
Nota: |
|---|
| Para habilitar la detección de errores y hacer que la instancia de clase sea más segura, utilice el constructor UTF8Encoding que toma un parámetro throwOnInvalidBytes y establece ese parámetro en true. Con la detección de errores, el método que detecte una secuencia de caracteres o de bytes no válida producirá una excepción ArgumentException. Sin la detección de errores, no se producirá excepción alguna y, por lo general, se omitirá la secuencia no válida. |
UTF8Encoding corresponde a la página de códigos 65001 de Windows.
Nota: |
|---|
| El estado de un objeto UTF-8 codificado no se conserva si el objeto se serializa y se deserializa utilizando distintas versiones de .NET Framework. |