UTF8Encoding Constructeurs
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 .