Compartir vía


UTF8Encoding Constructores

Definición

Inicializa una nueva instancia de la clase UTF8Encoding.

Sobrecargas

UTF8Encoding()

Inicializa una nueva instancia de la clase UTF8Encoding.

UTF8Encoding(Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding. Un parámetro especifica si se proporciona una marca de orden de bytes Unicode.

UTF8Encoding(Boolean, Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding. Algunos parámetros especifican si se proporciona una marca de orden de bytes Unicode y si debe producirse una excepción cuando se detecta una codificación no válida.

UTF8Encoding()

Inicializa una nueva instancia de la clase UTF8Encoding.

public:
 UTF8Encoding();
public UTF8Encoding ();
Public Sub New ()

Ejemplos

En el ejemplo siguiente se crea una nueva UTF8Encoding instancia y se muestra su nombre.

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   String^ encodingName = utf8->EncodingName;
   Console::WriteLine( "Encoding name: {0}", encodingName );
}
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        String encodingName = utf8.EncodingName;
        Console.WriteLine("Encoding name: " + encodingName);
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim encodingName As String = utf8.EncodingName
        Console.WriteLine("Encoding name: " & encodingName)
    End Sub
End Class

Comentarios

Este constructor crea una instancia que no proporciona una marca de orden de bytes Unicode y no produce una excepción cuando se detecta una codificación no válida.

Precaución

Por motivos de seguridad, se recomienda habilitar la detección de errores llamando a un constructor con un throwOnInvalidBytes parámetro y estableciendo su valor en true.

Consulte también

Se aplica a

UTF8Encoding(Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding. Un parámetro especifica si se proporciona una marca de orden de bytes Unicode.

public:
 UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)

Parámetros

encoderShouldEmitUTF8Identifier
Boolean

Es true para especificar que el método GetPreamble() devuelve una marca de orden de bytes Unicode; en caso contrario, es false.

Ejemplos

En el ejemplo siguiente se crea una nueva UTF8Encoding instancia y se especifica que el GetPreamble método debe emitir un prefijo de marca de orden de bytes Unicode. A GetPreamble continuación, el método devuelve el prefijo de marca de orden de bytes Unicode.

using namespace System;
using namespace System::Text;
using namespace System::Collections;
void ShowArray( Array^ theArray )
{
   IEnumerator^ myEnum = theArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ o = safe_cast<Object^>(myEnum->Current);
      Console::Write( "[{0}]", o );
   }

   Console::WriteLine();
}

int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   UTF8Encoding^ utf8EmitBOM = gcnew UTF8Encoding( true );
   Console::WriteLine( "utf8 preamble:" );
   ShowArray( utf8->GetPreamble() );
   Console::WriteLine( "utf8EmitBOM:" );
   ShowArray( utf8EmitBOM->GetPreamble() );
}
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        UTF8Encoding utf8EmitBOM = new UTF8Encoding(true);

        Console.WriteLine("utf8 preamble:");
        ShowArray(utf8.GetPreamble());

        Console.WriteLine("utf8EmitBOM:");
        ShowArray(utf8EmitBOM.GetPreamble());
    }

    public static void ShowArray(Array theArray) {
        foreach (Object o in theArray) {
            Console.Write("[{0}]", o);
        }
        Console.WriteLine();
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim utf8EmitBOM As New UTF8Encoding(True)
        
        Console.WriteLine("utf8 preamble:")
        ShowArray(utf8.GetPreamble())
        
        Console.WriteLine("utf8EmitBOM:")
        ShowArray(utf8EmitBOM.GetPreamble())
    End Sub
    
    
    Public Shared Sub ShowArray(theArray As Array)
        Dim o As Object
        For Each o In  theArray
            Console.Write("[{0}]", o)
        Next o
        Console.WriteLine()
    End Sub
End Class

Comentarios

Este constructor crea una instancia que no produce una excepción cuando se detecta una codificación no válida.

Precaución

Por motivos de seguridad, debe habilitar la detección de errores mediante una llamada a un constructor que incluya un throwOnInvalidBytes parámetro y establezca su valor en true.

El encoderShouldEmitUTF8Identifier parámetro controla la operación del GetPreamble método . Si truees , el método devuelve una matriz de bytes que contiene la marca de orden de bytes Unicode (BOM) en formato UTF-8. Si falsees , devuelve una matriz de bytes de longitud cero. Sin embargo, encoderShouldEmitUTF8Identifier true establecer en no hace que el GetBytes método prefijo la BOM al principio de la matriz de bytes, ni hace que el GetByteCount método incluya el número de bytes en la lista de bytes en el recuento de bytes.

Consulte también

Se aplica a

UTF8Encoding(Boolean, Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding. Algunos parámetros especifican si se proporciona una marca de orden de bytes Unicode y si debe producirse una excepción cuando se detecta una codificación no válida.

public:
 UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
new System.Text.UTF8Encoding : bool * bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean, throwOnInvalidBytes As Boolean)

Parámetros

encoderShouldEmitUTF8Identifier
Boolean

Es true para especificar que el método GetPreamble() debe devolver una marca de orden de bytes Unicode; en caso contrario, es false.

throwOnInvalidBytes
Boolean

Es true para que se produzca una excepción cuando se detecta una codificación no válida; en caso contrario, es false.

Ejemplos

En el ejemplo siguiente se crea una nueva UTF8Encoding instancia, especificando que el GetPreamble método no debe emitir un prefijo de marca de orden de bytes Unicode y se debe producir una excepción cuando se detecta una codificación no válida. El comportamiento de este constructor se compara con el constructor predeterminado UTF8Encoding() , que no produce una excepción cuando se detecta una codificación no válida. Las dos UTF8Encoding instancias codifican una matriz de caracteres que contiene dos suplentes altos (U+D801 y U+D802) en una fila, que es una secuencia de caracteres no válida; un suplente alto siempre debe ir seguido de un suplente bajo.

using namespace System;
using namespace System::Text;

void ShowArray(Array^ theArray)
{
   for each (Byte b in theArray) {
      Console::Write( "{0:X2} ", b);
   }
   Console::WriteLine();
}

int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   UTF8Encoding^ utf8ThrowException = gcnew UTF8Encoding(false,true);
   
   // This array contains two high surrogates in a row (\uD801, \uD802).
   array<Char>^chars = {'a','b','c',L'\xD801',L'\xD802','d'};
   
   // The following method call will not throw an exception.
   array<Byte>^bytes = utf8->GetBytes( chars );
   ShowArray( bytes );
   Console::WriteLine();
   
   try {
      
      // The following method call will throw an exception.
      bytes = utf8ThrowException->GetBytes( chars );
   }
   catch (EncoderFallbackException^ e ) {
            Console::WriteLine("{0} exception\nMessage:\n{1}",
                               e->GetType()->Name, e->Message);
   }

}
using System;
using System.Text;

class Example
{
    public static void Main()
    {
        UTF8Encoding utf8 = new UTF8Encoding();
        UTF8Encoding utf8ThrowException = new UTF8Encoding(false, true);

        // Create an array with two high surrogates in a row (\uD801, \uD802).
        Char[] chars = new Char[] {'a', 'b', 'c', '\uD801', '\uD802', 'd'};

        // The following method call will not throw an exception.
        Byte[] bytes = utf8.GetBytes(chars);
        ShowArray(bytes);
        Console.WriteLine();

        try {
            // The following method call will throw an exception.
            bytes = utf8ThrowException.GetBytes(chars);
            ShowArray(bytes);
        }
        catch (EncoderFallbackException e) {
            Console.WriteLine("{0} exception\nMessage:\n{1}",
                              e.GetType().Name, e.Message);
        }
    }

    public static void ShowArray(Array theArray) {
        foreach (Object o in theArray)
            Console.Write("{0:X2} ", o);

        Console.WriteLine();
    }
}
// The example displays the following output:
//    61 62 63 EF BF BD EF BF BD 64
//
//    EncoderFallbackException exception
//    Message:
//    Unable to translate Unicode character \uD801 at index 3 to specified code page.
Imports System.Text

Class Example
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim utf8ThrowException As New UTF8Encoding(False, True)
        
        ' Create an array with two high surrogates in a row (\uD801, \uD802).
        Dim chars() As Char = {"a"c, "b"c, "c"c, ChrW(&hD801), ChrW(&hD802), "d"c}
        
        ' The following method call will not throw an exception.
        Dim bytes As Byte() = utf8.GetBytes(chars)
        ShowArray(bytes)
        Console.WriteLine()
        
        Try
            ' The following method call will throw an exception.
            bytes = utf8ThrowException.GetBytes(chars)
            ShowArray(bytes)
        Catch e As EncoderFallbackException
            Console.WriteLine("{0} exception{2}Message:{2}{1}",
                              e.GetType().Name, e.Message, vbCrLf)
        End Try
    End Sub
    
    
    Public Shared Sub ShowArray(theArray As Array)
        For Each o In theArray
            Console.Write("{0:X2} ", o)
        Next
        Console.WriteLine()
    End Sub
End Class
' The example displays the following output:
'    61 62 63 EF BF BD EF BF BD 64
'
'    EncoderFallbackException exception
'    Message:
'    Unable to translate Unicode character \uD801 at index 3 to specified code page.

Comentarios

El encoderShouldEmitUTF8Identifier parámetro controla la operación del GetPreamble método . Si truees , el método devuelve una matriz de bytes que contiene la marca de orden de bytes Unicode (BOM) en formato UTF-8. Si falsees , devuelve una matriz de bytes de longitud cero. Sin embargo, encoderShouldEmitUTF8Identifier true establecer en no hace que el GetBytes método prefijo la BOM al principio de la matriz de bytes, ni hace que el GetByteCount método incluya el número de bytes en la lista de bytes en el recuento de bytes.

Si throwOnInvalidBytes es true, un método que detecta una secuencia de bytes no válida produce una System.ArgumentException excepción. De lo contrario, el método no inicia una excepción y se omite la secuencia no válida.

Precaución

Por motivos de seguridad, debe habilitar la detección de errores mediante una llamada a un constructor que incluya un throwOnInvalidBytes parámetro y establezca ese parámetro en true.

Consulte también

Se aplica a