Partager via


UTF8Encoding Constructeurs

Définition

Initialise une nouvelle instance de la classe UTF8Encoding.

Surcharges

UTF8Encoding()

Initialise une nouvelle instance de la classe UTF8Encoding.

UTF8Encoding(Boolean)

Initialise une nouvelle instance de la classe UTF8Encoding. Un paramètre spécifie si une marque d'ordre d'octet Unicode doit être fournie.

UTF8Encoding(Boolean, Boolean)

Initialise une nouvelle instance de la classe UTF8Encoding. Les paramètres spécifient s'il faut fournir une marque d'ordre d'octet Unicode et si une exception doit être levée quand un encodage non valide est détecté.

UTF8Encoding()

Source:
UTF8Encoding.cs
Source:
UTF8Encoding.cs
Source:
UTF8Encoding.cs

Initialise une nouvelle instance de la classe UTF8Encoding.

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

Exemples

L’exemple suivant crée une UTF8Encoding instance et affiche son nom.

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

Remarques

Ce constructeur crée une instance qui ne fournit pas de marque d’ordre d’octet Unicode et ne lève pas d’exception lorsqu’un encodage non valide est détecté.

Attention

Pour des raisons de sécurité, nous vous recommandons d’activer la détection des erreurs en appelant un constructeur avec un throwOnInvalidBytes paramètre et en définissant sa valeur sur true.

Voir aussi

S’applique à

UTF8Encoding(Boolean)

Source:
UTF8Encoding.cs
Source:
UTF8Encoding.cs
Source:
UTF8Encoding.cs

Initialise une nouvelle instance de la classe UTF8Encoding. Un paramètre spécifie si une marque d'ordre d'octet Unicode doit être fournie.

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

Paramètres

encoderShouldEmitUTF8Identifier
Boolean

true pour spécifier que la méthode GetPreamble() retourne une marque d'ordre d'octet Unicode ; sinon, false.

Exemples

L’exemple suivant crée une UTF8Encoding instance et spécifie qu’un préfixe de marque d’ordre d’octet Unicode doit être émis par la GetPreamble méthode . La GetPreamble méthode retourne ensuite le préfixe de marque d’ordre d’octet 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

Remarques

Ce constructeur crée une instance qui ne lève pas d’exception lorsqu’un encodage non valide est détecté.

Attention

Pour des raisons de sécurité, vous devez activer la détection des erreurs en appelant un constructeur qui inclut un throwOnInvalidBytes paramètre et en définissant sa valeur sur true.

Le encoderShouldEmitUTF8Identifier paramètre contrôle l’opération de la GetPreamble méthode . Si la valeur est true, la méthode retourne un tableau d’octets contenant la marque d’ordre d’octet Unicode au format UTF-8. Si falsela valeur est , elle retourne un tableau d’octets de longueur nulle. Toutefois, la définition encoderShouldEmitUTF8Identifiertrue de sur n’oblige pas la GetBytes méthode à préfixer la nomenclature au début du tableau d’octets, ni à inclure le GetByteCount nombre d’octets dans la nomenclature dans le nombre d’octets.

Voir aussi

S’applique à

UTF8Encoding(Boolean, Boolean)

Source:
UTF8Encoding.cs
Source:
UTF8Encoding.cs
Source:
UTF8Encoding.cs

Initialise une nouvelle instance de la classe UTF8Encoding. Les paramètres spécifient s'il faut fournir une marque d'ordre d'octet Unicode et si une exception doit être levée quand un encodage non valide est détecté.

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)

Paramètres

encoderShouldEmitUTF8Identifier
Boolean

true pour spécifier que la méthode GetPreamble() doit retourner une marque d'ordre d'octet Unicode ; sinon, false.

throwOnInvalidBytes
Boolean

true pour lever une exception lorsqu'un encodage non valide est détecté ; sinon, false.

Exemples

L’exemple suivant crée une UTF8Encoding instance en spécifiant que la GetPreamble méthode ne doit pas émettre de préfixe de marque d’ordre d’octet Unicode et qu’une exception doit être levée lorsqu’un encodage non valide est détecté. Le comportement de ce constructeur est comparé au constructeur par défaut UTF8Encoding() , qui ne lève pas d’exception lorsqu’un encodage non valide est détecté. Les deux UTF8Encoding instances encodent un tableau de caractères qui contient deux substituts élevés (U+D801 et U+D802) dans une ligne, qui est une séquence de caractères non valide ; un substitut élevé doit toujours être suivi d’un substitut faible.

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.

Remarques

Le encoderShouldEmitUTF8Identifier paramètre contrôle l’opération de la GetPreamble méthode . Si la valeur est true, la méthode retourne un tableau d’octets contenant la marque d’ordre d’octet Unicode au format UTF-8. Si falsela valeur est , elle retourne un tableau d’octets de longueur nulle. Toutefois, la définition encoderShouldEmitUTF8Identifiertrue de sur n’oblige pas la GetBytes méthode à préfixer la nomenclature au début du tableau d’octets, ni à inclure le GetByteCount nombre d’octets dans la nomenclature dans le nombre d’octets.

Si throwOnInvalidBytes a la valeur true, une méthode qui détecte une séquence d’octets non valide lève une System.ArgumentException exception. Sinon, la méthode ne lève pas d’exception et la séquence non valide est ignorée.

Attention

Pour des raisons de sécurité, vous devez activer la détection des erreurs en appelant un constructeur qui inclut un throwOnInvalidBytes paramètre et en affectant à ce paramètre la valeur true.

Voir aussi

S’applique à