Condividi tramite


UTF8Encoding Costruttori

Definizione

Inizializza una nuova istanza della classe UTF8Encoding.

Overload

UTF8Encoding()

Inizializza una nuova istanza della classe UTF8Encoding.

UTF8Encoding(Boolean)

Inizializza una nuova istanza della classe UTF8Encoding. Un parametro specifica se fornire un byte order mark Unicode.

UTF8Encoding(Boolean, Boolean)

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.

UTF8Encoding()

Origine:
UTF8Encoding.cs
Origine:
UTF8Encoding.cs
Origine:
UTF8Encoding.cs

Inizializza una nuova istanza della classe UTF8Encoding.

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

Esempio

Nell'esempio seguente viene creata una nuova UTF8Encoding istanza e viene visualizzato il nome.

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

Commenti

Questo costruttore crea un'istanza che non fornisce un contrassegno di ordine di byte Unicode e non genera un'eccezione quando viene rilevata una codifica non valida.

Attenzione

Per motivi di sicurezza, è consigliabile abilitare il rilevamento degli errori chiamando un costruttore con un throwOnInvalidBytes parametro e impostandone il valore su true.

Vedi anche

Si applica a

UTF8Encoding(Boolean)

Origine:
UTF8Encoding.cs
Origine:
UTF8Encoding.cs
Origine:
UTF8Encoding.cs

Inizializza una nuova istanza della classe UTF8Encoding. Un parametro specifica se fornire un byte order mark Unicode.

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

Parametri

encoderShouldEmitUTF8Identifier
Boolean

true per specificare che il metodo GetPreamble() restituisce un byte order mark Unicode; in caso contrario, false.

Esempio

Nell'esempio seguente viene creata una nuova UTF8Encoding istanza e viene specificato che un prefisso di contrassegno dell'ordine GetPreamble di byte Unicode deve essere generato dal metodo . Il GetPreamble metodo restituisce quindi il prefisso di contrassegno dell'ordine di byte 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

Commenti

Questo costruttore crea un'istanza che non genera un'eccezione quando viene rilevata una codifica non valida.

Attenzione

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

Il encoderShouldEmitUTF8Identifier parametro controlla l'operazione del GetPreamble metodo. Se true, il metodo restituisce una matrice di byte contenente il contrassegno dell'ordine di byte Unicode (BOM) in formato UTF-8. Se false, restituisce una matrice di byte a lunghezza zero. Tuttavia, l'impostazione encoderShouldEmitUTF8Identifier su true non comporta che il GetBytes metodo prefissi la BOM all'inizio della matrice di byte, né che il GetByteCount metodo includa il numero di byte nel conteggio dei byte.

Vedi anche

Si applica a

UTF8Encoding(Boolean, Boolean)

Origine:
UTF8Encoding.cs
Origine:
UTF8Encoding.cs
Origine:
UTF8Encoding.cs

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.

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)

Parametri

encoderShouldEmitUTF8Identifier
Boolean

true per specificare che il metodo GetPreamble() deve restituire un byte order mark Unicode; in caso contrario, false.

throwOnInvalidBytes
Boolean

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

Esempio

Nell'esempio seguente viene creata una nuova UTF8Encoding istanza, specificando che il GetPreamble metodo non deve generare un prefisso di contrassegno di byte Unicode e deve essere generata un'eccezione quando viene rilevata una codifica non valida. Il comportamento di questo costruttore viene confrontato con il costruttore predefinito, che non genera un'eccezione quando viene rilevata UTF8Encoding() una codifica non valida. Le due UTF8Encoding istanze codificano una matrice di caratteri che contiene due surrogati elevati (U+D801 e U+D802) in una riga, ovvero una sequenza di caratteri non valida. Un surrogato elevato deve essere sempre seguito da un surrogato basso.

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.

Commenti

Il encoderShouldEmitUTF8Identifier parametro controlla l'operazione del GetPreamble metodo. Se true, il metodo restituisce una matrice di byte contenente il contrassegno dell'ordine di byte Unicode (BOM) in formato UTF-8. Se false, restituisce una matrice di byte a lunghezza zero. Tuttavia, l'impostazione encoderShouldEmitUTF8Identifier su true non comporta che il GetBytes metodo prefissi la BOM all'inizio della matrice di byte, né che il GetByteCount metodo includa il numero di byte nel conteggio dei byte.

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

Attenzione

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

Vedi anche

Si applica a