Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Encoding (Clase)

Representa una codificación de carácter.

Espacio de nombres:  System.Text
Ensamblado:  mscorlib (en mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Encoding : ICloneable

El tipo Encoding expone los siguientes miembros.

  Nombre Descripción
Método protegido Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif Encoding() Inicializa una nueva instancia de la clase Encoding.
Método protegido Compatible con XNA Framework Encoding(Int32) Inicializa una nueva instancia de la clase Encoding que corresponde a la página de códigos especificada.
Arriba
  Nombre Descripción
Propiedad pública Miembro estático Compatible con XNA Framework ASCII Obtiene una codificación para el juego de caracteres ASCII (de 7 bits).
Propiedad pública Miembro estático Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif BigEndianUnicode Obtiene una codificación para el formato UTF-16 utilizando el orden de bytes big endian.
Propiedad pública BodyName 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.
Propiedad pública Compatible con XNA Framework CodePage Cuando se reemplaza en una clase derivada, obtiene el identificador de página de códigos de la clase Encoding actual.
Propiedad pública DecoderFallback Obtiene o establece el objeto DecoderFallback para el objeto Encoding actual.
Propiedad pública Miembro estático Compatible con XNA Framework Default Obtiene una codificación para la página de códigos ANSI actual del sistema operativo.
Propiedad pública EncoderFallback Obtiene o establece el objeto EncoderFallback para el objeto Encoding actual.
Propiedad pública EncodingName Cuando se reemplaza en una clase derivada, obtiene la descripción inteligible de la codificación actual.
Propiedad pública HeaderName 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.
Propiedad pública IsBrowserDisplay 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.
Propiedad pública IsBrowserSave 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.
Propiedad pública IsMailNewsDisplay 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.
Propiedad pública IsMailNewsSave 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.
Propiedad pública IsReadOnly Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual es de sólo lectura.
Propiedad pública IsSingleByte 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.
Propiedad pública Miembro estático Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif Unicode Obtiene una codificación para el formato UTF-16 utilizando el orden de bytes little-endian.
Propiedad pública Miembro estático UTF32 Obtiene una codificación para el formato UTF-32 utilizando el orden de bytes little-endian.
Propiedad pública Miembro estático Compatible con XNA Framework UTF7 Obtiene una codificación para el formato UTF-7.
Propiedad pública Miembro estático Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif UTF8 Obtiene una codificación para el formato UTF-8.
Propiedad pública Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif WebName Cuando se reemplaza en una clase derivada, obtiene el nombre registrado en IANA (Internet Assigned Numbers Authority) para la codificación actual.
Propiedad pública WindowsCodePage 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.
Arriba
  Nombre Descripción
Método público Compatible con XNA Framework Clone Cuando se reemplaza en una clase derivada, crea una copia superficial del objeto Encoding actual.
Método público Miembro estático Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif Convert(Encoding, Encoding, Byte[]) Convierte una matriz de bytes completa de una codificación a otra.
Método público Miembro estático Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif Convert(Encoding, Encoding, Byte[], Int32, Int32) Convierte un intervalo de bytes de una matriz de bytes de una codificación a otra.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif Equals Determina si la clase Object especificada es igual a la instancia actual. (Invalida a Object.Equals(Object)).
Método protegido Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetByteCount(Char[]) Cuando se reemplaza en una clase derivada, calcula el número de bytes generados al codificar todos los caracteres de la matriz de caracteres especificada.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetByteCount(String) Cuando se invalida en una clase derivada, calcula el número de bytes que se generan al codificar los caracteres de la cadena especificada.
Método público GetByteCount(Char*, Int32) Cuando se reemplaza en una clase derivada, calcula el número de bytes generados al codificar un conjunto de caracteres a partir del puntero de caracteres especificado.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetByteCount(Char[], Int32, Int32) Cuando se reemplaza en una clase derivada, calcula el número de bytes generado al codificar un conjunto de caracteres de la matriz de caracteres especificada.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetBytes(Char[]) Cuando se reemplaza en una clase derivada, codifica todos los caracteres de la matriz de caracteres especificada en una secuencia de bytes.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetBytes(String) Cuando se invalida en una clase derivada, codifica todos los caracteres de la cadena especificada en una secuencia de bytes.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetBytes(Char[], Int32, Int32) Cuando se reemplaza en una clase derivada, codifica un conjunto de caracteres de la matriz de caracteres especificada en una secuencia de bytes.
Método público GetBytes(Char*, Int32, Byte*, Int32) Cuando se reemplaza en una clase derivada, codifica un conjunto de caracteres a partir del puntero de caracteres especificado en una secuencia de bytes que se almacenan a partir del puntero de bytes especificado.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetBytes(Char[], Int32, Int32, Byte[], Int32) Cuando se reemplaza en una clase derivada, codifica un conjunto de caracteres de la matriz de caracteres especificada en la matriz de bytes especificada.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetBytes(String, Int32, Int32, Byte[], Int32) Cuando se invalida en una clase derivada, codifica un juego de caracteres de la cadena especificada en la matriz de bytes especificada.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetCharCount(Byte[]) Cuando se reemplaza en una clase derivada, calcula el número de caracteres generados al descodificar todos los bytes de la matriz de bytes especificada.
Método público GetCharCount(Byte*, Int32) Cuando se reemplaza en una clase derivada, calcula el número de caracteres generados al descodificar una secuencia de bytes a partir del puntero de bytes especificado.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetCharCount(Byte[], Int32, Int32) Cuando se reemplaza en una clase derivada, calcula el número de caracteres generado mediante la descodificación de una secuencia de bytes de la matriz de bytes especificada.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetChars(Byte[]) Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la matriz de bytes especificada en un conjunto de caracteres.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetChars(Byte[], Int32, Int32) Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada en un conjunto de caracteres.
Método público GetChars(Byte*, Int32, Char*, Int32) Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes a partir del puntero de bytes especificado en un conjunto de caracteres que se almacenan a partir del puntero de caracteres especificado.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetChars(Byte[], Int32, Int32, Char[], Int32) Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada en la matriz de caracteres especificada.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetDecoder Cuando se reemplaza en una clase derivada, obtiene un descodificador que convierte una secuencia de bytes codificada en una secuencia de caracteres.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetEncoder Cuando se reemplaza en una clase derivada, obtiene un codificador que convierte una secuencia de caracteres Unicode en una secuencia de bytes codificada.
Método público Miembro estático Compatible con XNA Framework GetEncoding(Int32) Devuelve la codificación asociada al identificador de página de códigos especificado.
Método público Miembro estático Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetEncoding(String) Devuelve la codificación asociada al nombre de la página de códigos especificada.
Método público Miembro estático GetEncoding(Int32, EncoderFallback, DecoderFallback) Devuelve la codificación asociada al identificador de página de códigos especificado. Los parámetros especifican un controlador de errores para los caracteres que no se pueden codificar y las secuencias de bytes que no se pueden descodificar.
Método público Miembro estático GetEncoding(String, EncoderFallback, DecoderFallback) Devuelve la codificación asociada al nombre de la página de códigos especificada. Los parámetros especifican un controlador de errores para los caracteres que no se pueden codificar y las secuencias de bytes que no se pueden descodificar.
Método público Miembro estático GetEncodings Devuelve una matriz que contiene todas las codificaciones.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetHashCode Devuelve el código hash de la instancia actual. (Invalida a Object.GetHashCode()).
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetMaxByteCount Cuando se reemplaza en una clase derivada, calcula el número máximo de bytes generados al codificar el número de caracteres especificado.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetMaxCharCount Cuando se reemplaza en una clase derivada, calcula el número máximo de caracteres generados al descodificar el número de bytes especificado.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetPreamble Cuando se reemplaza en una clase derivada, devuelve una secuencia de bytes que especifica la codificación utilizada.
Método público GetString(Byte[]) Cuando se reemplaza en una clase derivada, descodifica todos los bytes de la matriz de bytes especificada en una cadena.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetString(Byte[], Int32, Int32) Cuando se reemplaza en una clase derivada, descodifica una secuencia de bytes de la matriz de bytes especificada en una cadena.
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público IsAlwaysNormalized() Obtiene un valor que indica si la codificación actual siempre se normaliza, utilizando la forma de normalización predeterminada.
Método público IsAlwaysNormalized(NormalizationForm) Cuando se reemplaza en una clase derivada, obtiene un valor que indica si la codificación actual siempre se normaliza, utilizando la forma de normalización especificada.
Método protegido Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público Compatible con XNA Framework 86hf4sb8.PortableClassLibrary(es-es,VS.100).gif ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Arriba

Codificar es el proceso de transformar un conjunto de caracteres Unicode en una secuencia de bytes. Por contraste, decodificar es el proceso de transformar una secuencia de bytes codificados en un conjunto de caracteres Unicode. Para obtener información sobre los formatos de transformación Unicode (UTF) y otras codificaciones admitidas por Encoding, vea Codificación de caracteres en .NET Framework.

Observe que Encoding se ha diseñado para operar sobre caracteres Unicode, no sobre datos binarios arbitrarios tales como las matrices de bytes. Si la aplicación debe codificar datos binarios arbitrarios en el texto, utilice un protocolo, como UUencode, que métodos tales como Convert.ToBase64CharArray lo implementan.

.NET Framework proporciona las implementaciones siguientes de la clase Encoding para que exista compatibilidad con las codificaciones Unicode actuales y de otro tipo:

  • ASCIIEncoding codifica caracteres Unicode como caracteres ASCII sencillos de 7 bits. Esta codificación sólo admite valores de caracteres entre U+0000 y U+007F. Página de códigos 20127. También disponible mediante la propiedad ASCII.

  • La clase UTF7Encoding codifica los caracteres Unicode mediante la codificación UTF-7. Esta codificación acepta todos los valores de caracteres Unicode. Página de códigos 65000. También disponible mediante la propiedad UTF7.

  • La clase UTF8Encoding codifica los caracteres Unicode mediante la codificación UTF-8. Esta codificación acepta todos los valores de caracteres Unicode. Página de códigos 65001. También disponible mediante la propiedad UTF8.

  • La clase UnicodeEncoding codifica los caracteres Unicode mediante la codificación UTF-16. Se admite tanto el orden de bytes little-endian como el big-endian. También disponible mediante las propiedades Unicode y BigEndianUnicode.

  • La clase UTF32Encoding codifica los caracteres Unicode mediante la codificación UTF-32. Se admiten tanto el orden de bytes little-endian (página de códigos 12000) como el big-endian (página de códigos 12001). También disponible mediante la propiedad UTF32.

La clase Encoding está pensada principalmente para convertir entre diferentes codificaciones y Unicode. A menudo, la opción correcta para una aplicación es una de las clases de Unicode derivadas.

Las aplicaciones utilizan el método GetEncoding para obtener otras codificaciones. Utilizarían el método GetEncodings para obtener una lista de todas las codificaciones.

En la tabla siguiente se ofrece una lista de las codificaciones compatibles y sus páginas de códigos asociadas. Un asterisco en la última columna indica que .NET Framework admite de forma nativa la página de códigos, con independencia de la plataforma subyacente.

Página de códigos

Name

Nombre para mostrar

37

IBM037

IBM EBCDIC (EE.UU.-Canadá)

437

IBM437

Estados Unidos OEM

500

IBM500

IBM EBCDIC (Internacional)

708

ASMO-708

Árabe (ASMO 708)

720

DOS-720

Árabe (DOS)

737

ibm737

Griego (DOS)

775

ibm775

Báltico (DOS)

850

ibm850

Europa occidental (DOS)

852

ibm852

Centroeuropeo (DOS)

855

IBM855

Cirílico OEM

857

ibm857

Turco (DOS)

858

IBM00858

Latín multilingüe OEM I

860

IBM860

Portugués (DOS)

861

ibm861

Islandés (DOS)

862

DOS-862

Hebreo (DOS)

863

IBM863

Francés canadiense (DOS)

864

IBM864

Árabe (864)

865

IBM865

Nórdico (DOS)

866

cp866

Cirílico (DOS)

869

ibm869

Griego moderno (DOS)

870

IBM870

IBM EBCDIC (Latín multilingüe-2)

874

windows-874

Tailandés (Windows)

875

cp875

IBM EBCDIC (Griego moderno)

932

shift_jis

Japonés (Shift-JIS)

936

gb2312

Chino simplificado (GB2312)

*

949

ks_c_5601-1987

Coreano

950

big5

Chino tradicional (Big5)

1026

IBM1026

IBM EBCDIC (Turco Latín-5)

1047

IBM01047

IBM Latín-1

1140

IBM01140

IBM EBCDIC (EE.UU.-Canadá-Euro)

1141

IBM01141

IBM EBCDIC (Alemania-Euro)

1142

IBM01142

IBM EBCDIC (Dinamarca-Noruega-Euro)

1143

IBM01143

IBM EBCDIC (Finlandia-Suecia-Euro)

1144

IBM01144

IBM EBCDIC (Italia-Euro)

1145

IBM01145

IBM EBCDIC (España-Euro)

1146

IBM01146

IBM EBCDIC (Reino Unido-Euro)

1147

IBM01147

IBM EBCDIC (Francia-Euro)

1148

IBM01148

IBM EBCDIC (Internacional-Euro)

1149

IBM01149

IBM EBCDIC (Islandés-Euro)

1200

utf-16

Unicode

*

1201

unicodeFFFE

Unicode (big-endian)

*

1250

windows-1250

Centroeuropeo (Windows)

1251

windows-1251

Cirílico (Windows)

1252

Windows -1252

Europeo occidental (Windows)

*

1253

windows-1253

Griego (Windows)

1254

windows-1254

Turco (Windows)

1255

windows-1255

Hebreo (Windows)

1256

windows-1256

Árabe (Windows)

1257

windows-1257

Báltico (Windows)

1258

windows-1258

Vietnamita (Windows)

1361

Johab

Coreano (Johab)

10000

macintosh

Europa occidental (Mac)

10001

x-mac-japanese

Japonés (Mac)

10002

x-mac-chinesetrad

Chino tradicional (Mac)

10003

x-mac-korean

Coreano (Mac)

*

10004

x-mac-arabic

Árabe (Mac)

10005

x-mac-hebrew

Hebreo (Mac)

10006

x-mac-greek

Griego (Mac)

10007

x-mac-cyrillic

Cirílico (Mac)

10008

x-mac-chinesesimp

Chino simplificado (Mac)

*

10010

x-mac-romanian

Rumano (Mac)

10017

x-mac-ukrainian

Ucraniano (Mac)

10021

x-mac-thai

Tailandés (Mac)

10029

x-mac-ce

Centroeuropeo (Mac)

10079

x-mac-icelandic

Islandés (Mac)

10081

x-mac-turkish

Turco (Mac)

10082

x-mac-croatian

Croata (Mac)

12000

utf-32

Unicode (UTF-32)

*

12001

utf-32BE

Unicode (UTF-32 big-endian)

*

20000

x-Chinese-CNS

Chino tradicional (CNS)

20001

x-cp20001

TCA Taiwán

20002

x-Chinese-Eten

Chino tradicional (Eten)

20003

x-cp20003

IBM5550 Taiwán

20004

x-cp20004

TeleText Taiwán

20005

x-cp20005

Wang Taiwán

20105

x-IA5

Europa occidental (IA5)

20106

x-IA5-German

Alemán (IA5)

20107

x-IA5-Swedish

Sueco (IA5)

20108

x-IA5-Norwegian

Noruego (IA5)

20127

us-ascii

EE.UU.-ASCII

*

20261

x-cp20261

T.61

20269

x-cp20269

ISO-6937

20273

IBM273

IBM EBCDIC (Alemania)

20277

IBM277

IBM EBCDIC (Dinamarca-Noruega)

20278

IBM278

IBM EBCDIC (Finlandia-Suecia)

20280

IBM280

IBM EBCDIC (Italia)

20284

IBM284

IBM EBCDIC (España)

20285

IBM285

IBM EBCDIC (Reino Unido)

20290

IBM290

IBM EBCDIC (Katakana japonés)

20297

IBM297

IBM EBCDIC (Francia)

20420

IBM420

IBM EBCDIC (Árabe)

20423

IBM423

IBM EBCDIC (Griego)

20424

IBM424

IBM EBCDIC (Hebreo)

20833

x-EBCDIC-KoreanExtended

IBM EBCDIC (Coreano extendido)

20838

IBM-Thai

IBM EBCDIC (Tai)

20866

koi8-r

Cirílico (KOI8-R)

20871

IBM871

IBM EBCDIC (Islandés)

20880

IBM880

IBM EBCDIC (Ruso cirílico)

20905

IBM905

IBM EBCDIC (Turco)

20924

IBM00924

IBM Latín-1

20932

EUC-JP

Japonés (JIS 0208-1990 y 0212-1990)

20936

x-cp20936

Chino simplificado (GB2312-80)

*

20949

x-cp20949

Coreano Wansung

*

21025

cp1025

IBM EBCDIC (Cirílico serbio-búlgaro)

21866

koi8-u

Cirílico (KOI8-U)

28591

iso-8859-1

Europa occidental (ISO)

*

28592

iso-8859-2

Centroeuropeo (ISO)

28593

iso-8859-3

Latín 3 (ISO)

28594

iso-8859-4

Báltico (ISO)

28595

iso-8859-5

Cirílico (ISO)

28596

iso-8859-6

Árabe (ISO)

28597

iso-8859-7

Griego (ISO)

28598

iso-8859-8

Hebreo (ISO-Visual)

*

28599

iso-8859-9

Turco (ISO)

28603

iso-8859-13

Estonio (ISO)

28605

iso-8859-15

Latín 9 (ISO)

29001

x-Europa

Europa

38598

iso-8859-8-i

Hebreo (ISO-Lógico)

*

50220

iso-2022-jp

Japonés (JIS)

*

50221

csISO2022JP

Japonés (JIS-Permitir 1 byte Kana)

*

50222

iso-2022-jp

Japonés (JIS-Permitir 1 byte Kana - SO/SI)

*

50225

iso-2022-kr

Coreano (ISO)

*

50227

x-cp50227

Chino simplificado (ISO-2022)

*

51932

euc-jp

Japonés (EUC)

*

51936

EUC-CN

Chino simplificado (EUC)

*

51949

euc-kr

Coreano (EUC)

*

52936

hz-gb-2312

Chino simplificado (HZ)

*

54936

GB18030

Chino simplificado (GB18030)

*

57002

x-iscii-de

ISCII Devanagari

*

57003

x-iscii-be

ISCII Bengalí

*

57004

x-iscii-ta

ISCII Tamil

*

57005

x-iscii-te

ISCII Telugu

*

57006

x-iscii-as

ISCII Asamés

*

57007

x-iscii-or

ISCII Oriya

*

57008

x-iscii-ka

ISCII Kannada

*

57009

x-iscii-ma

ISCII Malayalam

*

57010

x-iscii-gu

ISCII Gujarati

*

57011

x-iscii-pa

ISCII Punjabí

*

65000

utf-7

Unicode (UTF-7)

*

65001

utf-8

Unicode (UTF-8)

*

Si los datos que se van a convertir sólo están disponibles en bloques secuenciales (como los datos leídos de un flujo) o si la cantidad de datos es tan grande que es necesario dividirlos en bloques más pequeños, use las clases Decoder o Encoder proporcionadas por el método GetDecoder o GetEncoder, respectivamente, de una clase derivada.

Los codificadores UTF-16 y UTF-32 pueden utilizar el orden de bytes big endian (primero el byte más significativo) o el orden de bytes little endian (primero el byte menos significativo). Por ejemplo, la letra mayúscula latina A (U+0041) se serializa del siguiente modo (en hexadecimal):

  • El orden de bytes big endian de UTF-16: 00 41

  • El orden de bytes little endian de UTF-16: 41 00

  • El orden de bytes big endian de UTF-32: 00 00 00 41

  • El orden de bytes little endian de UTF-32: 41 00 00 00

Generalmente es más eficaz almacenar caracteres Unicode utilizando el orden de bytes nativo. Por ejemplo, es mejor usar el orden de bytes little-endian en plataformas little-endian, como los equipos Intel.

El método GetPreamble recupera una matriz de bytes que contiene la marca de orden de bytes (BOM). Si esta matriz de bytes se antepone a un flujo codificado, ayudará al descodificador a identificar el formato de codificación utilizado.

Para obtener más información sobre el orden de bytes y la marca de orden de bytes, vea The Unicode Standard en Unicode home page

Observe que las clases de codificación permiten errores que:

  • Cambian a un carácter "?" sin notificación.

  • Usan un carácter de "ajuste perfecto".

  • Cambian a un comportamiento específico de la aplicación a través del uso de las clases EncoderFallback y DecoderFallback con el carácter de reemplazo Unicode U+FFFD.

Se recomienda que se produzcan excepciones en todos los errores del flujo de datos en las aplicaciones. Una aplicación usa un marcador "throwonerror" cuando corresponda o usa las clases EncoderExceptionFallback y DecoderExceptionFallback. A menudo no se recomienda el retroceso de ajuste perfecto porque puede producir pérdida de datos o confusión y es más lento que los simples reemplazos de caracteres. Para las codificaciones ANSI, el mejor comportamiento de ajuste perfecto es el predeterminado.

En el ejemplo siguiente se convierte una cadena de una codificación a otra.

Nota Nota

La matriz de bytes es el único tipo de este ejemplo que contiene los datos codificados. Los tipos String y Char de .NET son Unicode, de modo que la llamada GetChars vuelve a descodificar los datos a Unicode.


using System;
using System.Text;

class Example
{
   static void Main()
   {
      string unicodeString = "This string contains the unicode character Pi (\u03a0)";

      // Create two different encodings.
      Encoding ascii = Encoding.ASCII;
      Encoding unicode = Encoding.Unicode;

      // Convert the string into a byte array.
      byte[] unicodeBytes = unicode.GetBytes(unicodeString);

      // Perform the conversion from one encoding to the other.
      byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);

      // Convert the new byte[] into a char[] and then into a string.
      char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
      string asciiString = new string(asciiChars);

      // Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString);
      Console.WriteLine("Ascii converted string: {0}", asciiString);
   }
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar