Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore UTF8Encoding (Boolean, Boolean)

 

Data di pubblicazione: ottobre 2016

Inizializza una nuova istanza della classe UTF8Encoding. I parametri specificano se fornire un byte order mark Unicode e se generare un'eccezione quando viene rilevata una codifica non valida.

Spazio dei nomi:   System.Text
Assembly:  mscorlib (in mscorlib.dll)

public UTF8Encoding(
	bool encoderShouldEmitUTF8Identifier,
	bool throwOnInvalidBytes
)

Parametri

encoderShouldEmitUTF8Identifier
Type: System.Boolean

true per specificare che il metodo GetPreamble deve restituire un byte order mark Unicode; in caso contrario, false. Per altre informazioni, vedere la sezione Osservazioni.

throwOnInvalidBytes
Type: System.Boolean

true per generare un'eccezione quando viene rilevata una codifica non valida; in caso contrario, false.

Il encoderShouldEmitUTF8Identifier parametro controlla il funzionamento di GetPreamble metodo. Se true, il metodo restituisce una matrice di byte contenente il byte order mark Unicode (BOM) in formato UTF-8. Se false, viene restituita una matrice di byte di lunghezza zero. Tuttavia, l'impostazione encoderShouldEmitUTF8Identifier per true non causa il GetBytes metodo per aggiungere come prefisso il BOM all'inizio della matrice di byte, né comporta la GetByteCount metodo per includere il numero di byte nella DBA il numero di byte.

Se throwOnInvalidBytes è true, un metodo che rileva una sequenza di byte non valido genera un System.ArgumentException (eccezione). In caso contrario, il metodo non genera un'eccezione e la sequenza non valida verrà ignorata.

System_CAPS_noteNota

Per motivi di sicurezza, è necessario abilitare il rilevamento errori chiamando un costruttore che include un throwOnInvalidBytes parametro e impostare tale parametro su true.

Nell'esempio seguente crea un nuovo UTF8Encoding istanza, specificando che il GetPreamble metodo non deve generare un byte order mark Unicode e deve essere generata un'eccezione quando viene rilevata una codifica non valida. Il comportamento di questo costruttore viene confrontato con il valore predefinito UTF8Encoding() costruttore, che non genera un'eccezione quando viene rilevata una codifica non valida. I due UTF8Encoding istanze codificare una matrice di caratteri che contiene due surrogati alti (U + D801 e U + D802) in una riga, ovvero una sequenza di caratteri non validi; un surrogato alto deve sempre essere seguito da un surrogato basso.

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.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: