UTF8Encoding UTF8Encoding UTF8Encoding UTF8Encoding Constructors

Definición

Sobrecargas

UTF8Encoding() UTF8Encoding() UTF8Encoding()

Inicializa una nueva instancia de la clase UTF8Encoding.Initializes a new instance of the UTF8Encoding class.

UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding.Initializes a new instance of the UTF8Encoding class. Un parámetro especifica si se proporciona una marca de orden de bytes Unicode.A parameter specifies whether to provide a Unicode byte order mark.

UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding.Initializes a new instance of the UTF8Encoding class. 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.Parameters specify whether to provide a Unicode byte order mark and whether to throw an exception when an invalid encoding is detected.

UTF8Encoding() UTF8Encoding() UTF8Encoding()

Inicializa una nueva instancia de la clase UTF8Encoding.Initializes a new instance of the UTF8Encoding class.

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

Ejemplos

En el ejemplo siguiente se crea un nuevo UTF8Encoding de instancia y muestra su nombre.The following example creates a new UTF8Encoding instance and displays its name.

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
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 'Main
End Class 'UTF8EncodingExample

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.This constructor creates an instance that does not provide a Unicode byte order mark and does not throw an exception when an invalid encoding is detected.

Precaución

Por motivos de seguridad, se recomienda habilitar la detección de errores mediante una llamada a un constructor con un throwOnInvalidBytes parámetro y establece su valor en true.For security reasons, we recommend that you enable error detection by calling a constructor with a throwOnInvalidBytes parameter and setting its value to true.

Consulte también:

UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean) UTF8Encoding(Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding.Initializes a new instance of the UTF8Encoding class. Un parámetro especifica si se proporciona una marca de orden de bytes Unicode.A parameter specifies whether to provide a Unicode byte order mark.

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 Boolean Boolean Boolean

Es true para especificar que el método GetPreamble() devuelve una marca de orden de bytes Unicode; en caso contrario, es false.true to specify that the GetPreamble() method returns a Unicode byte order mark; otherwise, false.

Ejemplos

En el ejemplo siguiente se crea un nuevo UTF8Encoding de instancia y especifica que debe emitirse un prefijo de marca de orden de bytes Unicode mediante la GetPreamble método.The following example creates a new UTF8Encoding instance and specifies that a Unicode byte order mark prefix should be emitted by the GetPreamble method. El GetPreamble método, a continuación, devuelve el prefijo de marca de orden de bytes Unicode.The GetPreamble method then returns the Unicode byte order mark prefix.

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
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 'Main
    
    
    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 'ShowArray
End Class 'UTF8EncodingExample

Comentarios

Este constructor crea una instancia que no produce una excepción cuando se detecta una codificación no válida.This constructor creates an instance that does not throw an exception when an invalid encoding is detected.

Precaución

Por motivos de seguridad, debe habilitar detección de errores mediante una llamada a un constructor que incluya un throwOnInvalidBytes parámetro y establece su valor en true.For security reasons, you should enable error detection by calling a constructor that includes a throwOnInvalidBytes parameter and setting its value to true.

El encoderShouldEmitUTF8Identifier parámetro controla el funcionamiento de la GetPreamble método.The encoderShouldEmitUTF8Identifier parameter controls the operation of the GetPreamble method. Si true, el método devuelve una matriz de bytes que contiene la marca de orden de bytes Unicode (BOM) en formato UTF-8.If true, the method returns a byte array containing the Unicode byte order mark (BOM) in UTF-8 format. Si false, devuelve una matriz de bytes de longitud cero.If false, it returns a zero-length byte array. Sin embargo, establecer encoderShouldEmitUTF8Identifier a true no provoca la GetBytes método como prefijo la marca BOM al principio de la matriz de bytes, ni hace que el GetByteCount método debe incluir el número de bytes en la marca BOM en el recuento de bytes.However, setting encoderShouldEmitUTF8Identifier to true does not cause the GetBytes method to prefix the BOM at the beginning of the byte array, nor does it cause the GetByteCount method to include the number of bytes in the BOM in the byte count.

Consulte también:

UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean) UTF8Encoding(Boolean, Boolean)

Inicializa una nueva instancia de la clase UTF8Encoding.Initializes a new instance of the UTF8Encoding class. 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.Parameters specify whether to provide a Unicode byte order mark and whether to throw an exception when an invalid encoding is detected.

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 Boolean Boolean Boolean

Es true para especificar que el método GetPreamble() debe devolver una marca de orden de bytes Unicode; en caso contrario, es false.true to specify that the GetPreamble() method should return a Unicode byte order mark; otherwise, false.

throwOnInvalidBytes
Boolean Boolean Boolean Boolean

Es true para que se produzca una excepción cuando se detecta una codificación no válida; en caso contrario, es false.true to throw an exception when an invalid encoding is detected; otherwise, false.

Ejemplos

En el ejemplo siguiente se crea un nuevo UTF8Encoding instancia especifica que el GetPreamble método no debe emitir un prefijo de marca de orden de bytes Unicode y debe producirse una excepción cuando se detecta una codificación no válida.The following example creates a new UTF8Encoding instance, specifying that the GetPreamble method should not emit a Unicode byte order mark prefix, and an exception should be thrown when an invalid encoding is detected. El comportamiento de este constructor se compara con el valor predeterminado UTF8Encoding() constructor, que no produce una excepción cuando se detecta una codificación no válida.The behavior of this constructor is compared to the default UTF8Encoding() constructor, which does not throw an exception when an invalid encoding is detected. Los dos UTF8Encoding instancias codifican una matriz de caracteres que contiene dos caracteres suplentes altos (U + D801 y D802 + U) en una fila, que es una secuencia de caracteres no válidos; un suplente alto siempre debe ir seguido por un suplente bajo.The two UTF8Encoding instances encode a character array that contains two high surrogates (U+D801 and U+D802) in a row, which is an invalid character sequence; a high surrogate should always be followed by a low surrogate.

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 el funcionamiento de la GetPreamble método.The encoderShouldEmitUTF8Identifier parameter controls the operation of the GetPreamble method. Si true, el método devuelve una matriz de bytes que contiene la marca de orden de bytes Unicode (BOM) en formato UTF-8.If true, the method returns a byte array containing the Unicode byte order mark (BOM) in UTF-8 format. Si false, devuelve una matriz de bytes de longitud cero.If false, it returns a zero-length byte array. Sin embargo, establecer encoderShouldEmitUTF8Identifier a true no provoca la GetBytes método como prefijo la marca BOM al principio de la matriz de bytes, ni hace que el GetByteCount método debe incluir el número de bytes en la marca BOM en el recuento de bytes.However, setting encoderShouldEmitUTF8Identifier to true does not cause the GetBytes method to prefix the BOM at the beginning of the byte array, nor does it cause the GetByteCount method to include the number of bytes in the BOM in the byte count.

Si throwOnInvalidBytes es true, un método que detecta una secuencia de bytes no válida inicia una System.ArgumentException excepción.If throwOnInvalidBytes is true, a method that detects an invalid byte sequence throws an System.ArgumentException exception. En caso contrario, el método no produce una excepción y se omite la secuencia no válida.Otherwise, the method does not throw an exception, and the invalid sequence is ignored.

Precaución

Por motivos de seguridad, debe habilitar detección de errores mediante una llamada a un constructor que incluya un throwOnInvalidBytes parámetro y establece ese parámetro en true.For security reasons, you should enable error detection by calling a constructor that includes a throwOnInvalidBytes parameter and setting that parameter to true.

Consulte también:

Se aplica a