UTF8Encoding Konstruktoren

Definition

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.

Überlädt

Name Beschreibung
UTF8Encoding()

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.

UTF8Encoding(Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Ein Parameter gibt an, ob ein Unicode-Bytereihenfolgezeichen bereitgestellt werden soll.

UTF8Encoding(Boolean, Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Parameter geben an, ob ein Unicode-Bytereihenfolgezeichen bereitgestellt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung erkannt wird.

UTF8Encoding()

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.

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

Beispiele

Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt und ihr Name angezeigt.

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

Hinweise

Dieser Konstruktor erstellt eine Instanz, die kein Unicode-Bytereihenfolgezeichen bereitstellt, und löst keine Ausnahme aus, wenn eine ungültige Codierung erkannt wird.

Vorsicht

Aus Sicherheitsgründen wird empfohlen, die Fehlererkennung zu aktivieren, indem Sie einen Konstruktor mit einem throwOnInvalidBytes Parameter aufrufen und dessen Wert auf truefestlegen.

Weitere Informationen

Gilt für:

UTF8Encoding(Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Ein Parameter gibt an, ob ein Unicode-Bytereihenfolgezeichen bereitgestellt werden soll.

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

Parameter

encoderShouldEmitUTF8Identifier
Boolean

trueum anzugeben, dass die GetPreamble() Methode ein Unicode-Bytereihenfolgezeichen zurückgibt; andernfalls . false

Beispiele

Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt und angegeben, dass ein Unicode-Bytereihenfolgenzeichenpräfix von der GetPreamble Methode ausgegeben werden soll. Die GetPreamble Methode gibt dann das Präfix der Unicode-Bytereihenfolge zurück.

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

Hinweise

Dieser Konstruktor erstellt eine Instanz, die keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird.

Vorsicht

Aus Sicherheitsgründen sollten Sie die Fehlererkennung aktivieren, indem Sie einen Konstruktor aufrufen, der einen throwOnInvalidBytes Parameter enthält und seinen Wert auf truefestlegen.

Der encoderShouldEmitUTF8Identifier Parameter steuert den Vorgang der GetPreamble Methode. Wenn truedie Methode ein Bytearray zurückgibt, das das Unicode-Bytereihenfolgezeichen (BOM) im UTF-8-Format enthält. Wenn false, gibt es ein Bytearray der Länge Null zurück. Die Einstellung encoderShouldEmitUTF8Identifier führt true jedoch nicht dazu, dass die GetBytes Methode dem BOM am Anfang des Bytearrays vorangestellt wird, und die Methode auch nicht dazu führt, dass die GetByteCount Methode die Anzahl der Bytes in die BOM in der Byteanzahl einschließt.

Weitere Informationen

Gilt für:

UTF8Encoding(Boolean, Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Parameter geben an, ob ein Unicode-Bytereihenfolgezeichen bereitgestellt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung erkannt wird.

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)

Parameter

encoderShouldEmitUTF8Identifier
Boolean

trueum anzugeben, dass die GetPreamble() Methode ein Unicode-Bytereihenfolgezeichen zurückgeben soll; andernfalls . false

throwOnInvalidBytes
Boolean

trueeine Ausnahme auszuwerfen, wenn eine ungültige Codierung erkannt wird; andernfalls . false

Beispiele

Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt, die angibt, dass die GetPreamble Methode kein Unicode-Bytereihenfolgezeichenpräfix ausgeben soll, und eine Ausnahme sollte ausgelöst werden, wenn eine ungültige Codierung erkannt wird. Das Verhalten dieses Konstruktors wird mit dem Standardkonstruktor UTF8Encoding() verglichen, der keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird. Die beiden UTF8Encoding Instanzen codieren ein Zeichenarray, das zwei hohe Surrogate (U+D801 und U+D802) in einer Zeile enthält, bei der es sich um eine ungültige Zeichensequenz handelt. Auf eine hohe Surrogate sollte immer ein niedriger Ersatz folgen.

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.

Hinweise

Der encoderShouldEmitUTF8Identifier Parameter steuert den Vorgang der GetPreamble Methode. Wenn truedie Methode ein Bytearray zurückgibt, das das Unicode-Bytereihenfolgezeichen (BOM) im UTF-8-Format enthält. Wenn false, gibt es ein Bytearray der Länge Null zurück. Die Einstellung encoderShouldEmitUTF8Identifier führt true jedoch nicht dazu, dass die GetBytes Methode dem BOM am Anfang des Bytearrays vorangestellt wird, und die Methode auch nicht dazu führt, dass die GetByteCount Methode die Anzahl der Bytes in die BOM in der Byteanzahl einschließt.

Wenn throwOnInvalidBytes ja true, löst eine Methode, die eine ungültige Bytesequenz erkennt, eine System.ArgumentException Ausnahme aus. Andernfalls löst die Methode keine Ausnahme aus, und die ungültige Sequenz wird ignoriert.

Vorsicht

Aus Sicherheitsgründen sollten Sie die Fehlererkennung aktivieren, indem Sie einen Konstruktor aufrufen, der einen throwOnInvalidBytes Parameter enthält und diesen Parameter festlegen.true

Weitere Informationen

Gilt für: