Califique este contenido
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2008/.NET Framework 3.5

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
UTF8Encoding (Clase)

Actualización: noviembre 2007

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

Espacio de nombres:  System.Text
Ensamblado:  mscorlib (en mscorlib.dll)
Visual Basic (Declaración)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class UTF8Encoding _
    Inherits Encoding
Visual Basic (Uso)
Dim instance As UTF8Encoding
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class UTF8Encoding : Encoding
Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class UTF8Encoding : public Encoding
J#
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public class UTF8Encoding extends Encoding
JScript
public class UTF8Encoding extends Encoding

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.

La codificación UTF-8 representa cada punto de código como una secuencia de uno a cuatro bytes. Para obtener más información sobre UFT y otras codificaciones que System.Text admite, vea Introducción a las codificaciones y Utilizar codificación Unicode.

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.

UTF8Encoding corresponde a la página de códigos 65001 de Windows.

El codificador puede usar el orden de bytes big-endian (primero el byte más significativo) o el orden de bytes little-endian (primero el byte menos significativo). 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.

Opcionalmente, la clase 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 (BOM), ayudará al descodificador a determinar el orden de bytes y el formato de la transformación o UTF. El método GetPreamble recupera una matriz de bytes que pueden incluir BOM. 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

31d6tdy7.alert_note(es-es,VS.90).gifNota:

Para habilitar la detección de errores y hacer que la instancia de clase sea más segura, debe usar en la aplicación el constructor UTF8Encoding que toma un parámetro throwOnInvalidBytes y establecer ese parámetro en true. Con la detección de errores, un método que detecte una secuencia de caracteres o de bytes no válida produce 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.

31d6tdy7.alert_note(es-es,VS.90).gifNota:

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.

En el siguiente ejemplo se muestra la forma de utilizar una clase UTF8Encoding para codificar una cadena de caracteres Unicode y guardarlos en una matriz de bytes. Advierta que cuando encodedBytes se vuelve a descodificar y se convierte en cadena no hay pérdida de datos.

Visual Basic
Imports System
Imports System.Text
Imports Microsoft.VisualBasic.Strings

Class UTF8EncodingExample

    Public Shared Sub Main()
        ' Create a UTF-8 encoding.
        Dim utf8 As New UTF8Encoding()

        ' A Unicode string with two characters outside an 8-bit code range.
        Dim unicodeString As String = _
            "This unicode string contains two characters " & _
            "with codes outside an 8-bit code range, " & _
            "Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
        Console.WriteLine("Original string:")
        Console.WriteLine(unicodeString)

        ' Encode the string.
        Dim encodedBytes As Byte() = utf8.GetBytes(unicodeString)
        Console.WriteLine()
        Console.WriteLine("Encoded bytes:")
        Dim b As Byte
        For Each b In  encodedBytes
            Console.Write("[{0}]", b)
        Next b
        Console.WriteLine()

        ' Decode bytes back to string.
        ' Notice Pi and Sigma characters are still present.
        Dim decodedString As String = utf8.GetString(encodedBytes)
        Console.WriteLine()
        Console.WriteLine("Decoded bytes:")
        Console.WriteLine(decodedString)
    End Sub
End Class
C#
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        // Create a UTF-8 encoding.
        UTF8Encoding utf8 = new UTF8Encoding();

        // A Unicode string with two characters outside an 8-bit code range.
        String unicodeString =
            "This unicode string contains two characters " +
            "with codes outside an 8-bit code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        Byte[] encodedBytes = utf8.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 = utf8.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    }
}
Visual C++
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{

   // Create a UTF-8 encoding.
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;

   // A Unicode string with two characters outside an 8-bit code range.
   String^ unicodeString = L"This unicode string contains two characters with codes outside an 8-bit code range, Pi (\u03a0) and Sigma (\u03a3).";
   Console::WriteLine( "Original string:" );
   Console::WriteLine( unicodeString );

   // Encode the string.
   array<Byte>^encodedBytes = utf8->GetBytes( unicodeString );
   Console::WriteLine();
   Console::WriteLine( "Encoded bytes:" );
   IEnumerator^ myEnum = encodedBytes->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Byte b = safe_cast<Byte>(myEnum->Current);
      Console::Write( "[{0}]", b );
   }

   Console::WriteLine();

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

J#
import System.*;
import System.Text.*;

class UTF8EncodingExample
{
    public static void main(String[] args)
    {
        // Create a UTF-8 encoding.
        UTF8Encoding utf8 = new UTF8Encoding();

        // A Unicode string with two characters outside an 8-bit code range.
        String unicodeString = "This unicode string contains two characters "
            + "with codes outside an 8-bit code range, " 
            + "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        ubyte encodedBytes[] = utf8.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        for (int iCtr = 0; iCtr < encodedBytes.length; iCtr++) {
            ubyte b = encodedBytes[iCtr];
            Console.Write("[{0}]", String.valueOf(b));
        }
        Console.WriteLine();

        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = utf8.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    } //main
} //UTF8EncodingExample
System..::.Object
  System.Text..::.Encoding
    System.Text..::.UTF8Encoding
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.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC, Xbox 360

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

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

.NET Compact Framework

Compatible con: 3.5, 2.0, 1.0

XNA Framework

Compatible con: 2.0, 1.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2009 Microsoft Corporation. Reservados todos los derechos. Temas legales | Marcas Registradas | Declaración de privacidad
Page view tracker