UTF8Encoding Konstruktoren

Definition

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class.

Überlädt

UTF8Encoding()

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class.

UTF8Encoding(Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class. Ein Parameter gibt an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll.A parameter specifies whether to provide a Unicode byte order mark.

UTF8Encoding(Boolean, Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class. Parameter geben an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung gefunden wird.Parameters specify whether to provide a Unicode byte order mark and whether to throw an exception when an invalid encoding is detected.

UTF8Encoding()

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class.

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

Beispiele

Im folgenden Beispiel wird eine neue UTF8Encoding-Instanz erstellt und deren Name angezeigt.The following example creates a new UTF8Encoding instance and displays its name.

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

Hinweise

Dieser Konstruktor erstellt eine Instanz, die keine Unicode-Byte Reihenfolge Markierung bereitstellt und keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird.This constructor creates an instance that does not provide a Unicode byte order mark and does not throw an exception when an invalid encoding is detected.

Achtung

Aus Sicherheitsgründen wird empfohlen, die Fehlererkennung zu aktivieren, indem Sie einen Konstruktor mit einem throwOnInvalidBytes-Parameter aufrufen und dessen Wert auf truefestlegen.For security reasons, we recommend that you enable error detection by calling a constructor with a throwOnInvalidBytes parameter and setting its value to true.

Siehe auch

UTF8Encoding(Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class. Ein Parameter gibt an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll.A parameter specifies whether to provide a Unicode byte order mark.

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

true, um anzugeben, dass die GetPreamble()-Methode eine Unicode-Bytereihenfolgemarkierung zurückgibt; andernfalls false.true to specify that the GetPreamble() method returns a Unicode byte order mark; otherwise, false.

Beispiele

Im folgenden Beispiel wird eine neue UTF8Encoding-Instanz erstellt und angegeben, dass ein Unicode-Byte Reihenfolge-Präfix von der GetPreamble-Methode ausgegeben werden soll.The following example creates a new UTF8Encoding instance and specifies that a Unicode byte order mark prefix should be emitted by the GetPreamble method. Die GetPreamble-Methode gibt dann das Unicode-Byte Reihenfolge Markierung-Präfix zurück.The GetPreamble method then returns the Unicode byte order mark prefix.

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

Hinweise

Dieser Konstruktor erstellt eine-Instanz, die keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird.This constructor creates an instance that does not throw an exception when an invalid encoding is detected.

Achtung

Aus Sicherheitsgründen sollten Sie die Fehlererkennung aktivieren, indem Sie einen Konstruktor aufrufen, der einen throwOnInvalidBytes-Parameter enthält, und dessen Wert auf truefestlegen.For security reasons, you should enable error detection by calling a constructor that includes a throwOnInvalidBytes parameter and setting its value to true.

Der encoderShouldEmitUTF8Identifier-Parameter steuert den Betrieb der GetPreamble Methode.The encoderShouldEmitUTF8Identifier parameter controls the operation of the GetPreamble method. Wenn true, gibt die Methode ein Bytearray zurück, das die Unicode-Byte Reihenfolge-Marke (BOM) im UTF-8-Format enthält.If true, the method returns a byte array containing the Unicode byte order mark (BOM) in UTF-8 format. Wenn false, wird ein Bytearray der Länge 0 (null) zurückgegeben.If false, it returns a zero-length byte array. Wenn Sie jedoch encoderShouldEmitUTF8Identifier auf true festlegen, bewirkt dies nicht, dass die GetBytes-Methode der BOM am Anfang des Bytearrays vorangestellt wird. Außerdem bewirkt dies, dass die GetByteCount Methode die Anzahl der Bytes in der BOM in der Byte Anzahl nicht einschließt.However, setting encoderShouldEmitUTF8Identifier to true does not cause the GetBytes method to prefix the BOM at the beginning of the byte array, nor does it cause the GetByteCount method to include the number of bytes in the BOM in the byte count.

Siehe auch

UTF8Encoding(Boolean, Boolean)

Initialisiert eine neue Instanz der UTF8Encoding-Klasse.Initializes a new instance of the UTF8Encoding class. Parameter geben an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung gefunden wird.Parameters specify whether to provide a Unicode byte order mark and whether to throw an exception when an invalid encoding is detected.

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

true, um anzugeben, dass die GetPreamble()-Methode eine Unicode-Bytereihenfolgemarkierung zurückgeben sollte; andernfalls false.true to specify that the GetPreamble() method should return a Unicode byte order mark; otherwise, false.

throwOnInvalidBytes
Boolean

true, damit eine Ausnahme ausgelöst wird, wenn eine ungültige Codierung gefunden wird, andernfalls false.true to throw an exception when an invalid encoding is detected; otherwise, false.

Beispiele

Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt, die angibt, dass die GetPreamble-Methode kein Unicode-Byte Reihenfolge-Präfix ausgeben soll, und eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung erkannt wird.The following example creates a new UTF8Encoding instance, specifying that the GetPreamble method should not emit a Unicode byte order mark prefix, and an exception should be thrown when an invalid encoding is detected. Das Verhalten dieses Konstruktors wird mit dem Standardkonstruktor UTF8Encoding() verglichen, der keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird.The behavior of this constructor is compared to the default UTF8Encoding() constructor, which does not throw an exception when an invalid encoding is detected. Die beiden UTF8Encoding Instanzen Codieren ein Zeichen Array, das zwei hohe Ersatz Zeichen (u + D801 und u + D802) in einer Zeile enthält. Dies ist eine ungültige Zeichenfolge. auf ein hohes Ersatz Zeichen sollte immer ein niedriges Ersatz Zeichen folgen.The two UTF8Encoding instances encode a character array that contains two high surrogates (U+D801 and U+D802) in a row, which is an invalid character sequence; a high surrogate should always be followed by a low surrogate.

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.

Hinweise

Der encoderShouldEmitUTF8Identifier-Parameter steuert den Betrieb der GetPreamble Methode.The encoderShouldEmitUTF8Identifier parameter controls the operation of the GetPreamble method. Wenn true, gibt die Methode ein Bytearray zurück, das die Unicode-Byte Reihenfolge-Marke (BOM) im UTF-8-Format enthält.If true, the method returns a byte array containing the Unicode byte order mark (BOM) in UTF-8 format. Wenn false, wird ein Bytearray der Länge 0 (null) zurückgegeben.If false, it returns a zero-length byte array. Wenn Sie jedoch encoderShouldEmitUTF8Identifier auf true festlegen, bewirkt dies nicht, dass die GetBytes-Methode der BOM am Anfang des Bytearrays vorangestellt wird. Außerdem bewirkt dies, dass die GetByteCount Methode die Anzahl der Bytes in der BOM in der Byte Anzahl nicht einschließt.However, setting encoderShouldEmitUTF8Identifier to true does not cause the GetBytes method to prefix the BOM at the beginning of the byte array, nor does it cause the GetByteCount method to include the number of bytes in the BOM in the byte count.

Wenn throwOnInvalidBytes trueist, löst eine Methode, die eine ungültige Byte Sequenz erkennt, eine System.ArgumentException Ausnahme aus.If throwOnInvalidBytes is true, a method that detects an invalid byte sequence throws an System.ArgumentException exception. Andernfalls löst die Methode keine Ausnahme aus, und die ungültige Sequenz wird ignoriert.Otherwise, the method does not throw an exception, and the invalid sequence is ignored.

Achtung

Aus Sicherheitsgründen sollten Sie die Fehlererkennung aktivieren, indem Sie einen Konstruktor aufrufen, der einen throwOnInvalidBytes-Parameter enthält, und diesen Parameter auf truefestlegen.For security reasons, you should enable error detection by calling a constructor that includes a throwOnInvalidBytes parameter and setting that parameter to true.

Siehe auch

Gilt für: