Leer en inglés

Compartir a través de


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.

C#
public UTF8Encoding ();

Ejemplos

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

C#
using System;
using System.Text;

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

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

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

UTF8Encoding(Boolean)

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

C#
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);

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.

C#
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();
    }
}

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

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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.

C#
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);

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.

C#
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.

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

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0