UTF8Encoding Constructeurs

Définition

Initialise une nouvelle instance de la classe UTF8Encoding.

Surcharges

Nom Description
UTF8Encoding()

Initialise une nouvelle instance de la classe UTF8Encoding.

UTF8Encoding(Boolean)

Initialise une nouvelle instance de la classe UTF8Encoding. Un paramètre spécifie s’il faut fournir une marque d’ordre d’octet Unicode.

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 s’il faut lever une exception lorsqu’un encodage non valide est détecté.

UTF8Encoding()

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 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é.

Avertissement

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

Voir aussi

S’applique à

UTF8Encoding(Boolean)

Initialise une nouvelle instance de la classe UTF8Encoding. Un paramètre spécifie s’il faut fournir une marque d’ordre d’octet Unicode.

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 GetPreamble() méthode retourne une marque d’ordre d’octet Unicode ; sinon, false.

Exemples

L’exemple suivant crée une instance UTF8Encoding 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 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é.

Avertissement

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 truesur .

Le encoderShouldEmitUTF8Identifier paramètre contrôle l’opération de la GetPreamble méthode. Si true, la méthode retourne un tableau d’octets contenant la marque d’ordre d’octet Unicode (BOM) au format UTF-8. Si false, elle retourne un tableau d’octets de longueur nulle. Toutefois, le paramètre encoderShouldEmitUTF8Identifier à true ne provoque pas le préfixe de la GetBytes méthode au début du tableau d’octets, ni n’entraîne-t-il GetByteCount l’ajout du nombre d’octets dans le nombre d’octets dans le nombre d’octets.

Voir aussi

S’applique à

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 s’il faut lever une exception lorsqu’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 GetPreamble() méthode 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 instance UTF8Encoding , 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 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 true, la méthode retourne un tableau d’octets contenant la marque d’ordre d’octet Unicode (BOM) au format UTF-8. Si false, elle retourne un tableau d’octets de longueur nulle. Toutefois, le paramètre encoderShouldEmitUTF8Identifier à true ne provoque pas le préfixe de la GetBytes méthode au début du tableau d’octets, ni n’entraîne-t-il GetByteCount l’ajout du nombre d’octets dans le nombre d’octets dans le nombre d’octets.

Si throwOnInvalidBytes c’est truele cas, 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.

Avertissement

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 ce paramètre truesur .

Voir aussi

S’applique à