UTF8Encoding Constructors

Definitie

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse.

Overloads

Name Description
UTF8Encoding()

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse.

UTF8Encoding(Boolean)

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse. Een parameter geeft aan of een Unicode-bytevolgordemarkering moet worden opgegeven.

UTF8Encoding(Boolean, Boolean)

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse. Parameters geven aan of een Unicode-bytevolgordemarkering moet worden opgegeven en of er een uitzondering moet worden gegenereerd wanneer een ongeldige codering wordt gedetecteerd.

UTF8Encoding()

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse.

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

Voorbeelden

In het volgende voorbeeld wordt een nieuw UTF8Encoding exemplaar gemaakt en wordt de naam ervan weergegeven.

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

Opmerkingen

Met deze constructor wordt een exemplaar gemaakt dat geen Unicode-bytevolgordemarkering biedt en geen uitzondering genereert wanneer een ongeldige codering wordt gedetecteerd.

Caution

Om veiligheidsredenen wordt u aangeraden foutdetectie in te schakelen door een constructor aan te roepen met een throwOnInvalidBytes parameter en de waarde ervan in te truestellen op.

Zie ook

Van toepassing op

UTF8Encoding(Boolean)

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse. Een parameter geeft aan of een Unicode-bytevolgordemarkering moet worden opgegeven.

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

Parameters

encoderShouldEmitUTF8Identifier
Boolean

trueom op te geven dat de GetPreamble() methode een Unicode-bytevolgordemarkering retourneert; anders. false

Voorbeelden

In het volgende voorbeeld wordt een nieuw UTF8Encoding exemplaar gemaakt en wordt aangegeven dat het voorvoegsel voor de Unicode-bytevolgorde moet worden verzonden door de GetPreamble methode. De GetPreamble methode retourneert vervolgens het voorvoegsel unicode-bytevolgordemarkering.

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

Opmerkingen

Met deze constructor wordt een exemplaar gemaakt dat geen uitzondering genereert wanneer een ongeldige codering wordt gedetecteerd.

Caution

Om veiligheidsredenen moet u foutdetectie inschakelen door een constructor aan te roepen die een throwOnInvalidBytes parameter bevat en de waarde ervan instelt op true.

De encoderShouldEmitUTF8Identifier parameter bepaalt de werking van de GetPreamble methode. Als true, de methode retourneert een bytematrix met de Unicode byte order mark (BOM) in UTF-8-indeling. Als false, retourneert het een bytematrix met lengte nul. Als encoderShouldEmitUTF8Identifiertrue u deze instelling echter niet veroorzaakt, wordt de stuklijst aan het begin van de bytematrix voorafgegaan door de GetBytes methode en wordt het GetByteCount aantal bytes in de stuklijst in het byteaantal opgenomen.

Zie ook

Van toepassing op

UTF8Encoding(Boolean, Boolean)

Initialiseert een nieuw exemplaar van de UTF8Encoding klasse. Parameters geven aan of een Unicode-bytevolgordemarkering moet worden opgegeven en of er een uitzondering moet worden gegenereerd wanneer een ongeldige codering wordt gedetecteerd.

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)

Parameters

encoderShouldEmitUTF8Identifier
Boolean

trueom op te geven dat de GetPreamble() methode een Unicode-bytevolgordemarkering moet retourneren; anders. false

throwOnInvalidBytes
Boolean

true om een uitzondering te genereren wanneer een ongeldige codering wordt gedetecteerd; anders, false.

Voorbeelden

In het volgende voorbeeld wordt een nieuw UTF8Encoding exemplaar gemaakt, waarin wordt opgegeven dat de GetPreamble methode geen unicode-bytevolgordevoorvoegsel mag verzenden en er een uitzondering moet worden gegenereerd wanneer er een ongeldige codering wordt gedetecteerd. Het gedrag van deze constructor wordt vergeleken met de standaardconstructor UTF8Encoding() , die geen uitzondering genereert wanneer een ongeldige codering wordt gedetecteerd. De twee UTF8Encoding instanties coderen een tekenmatrix die twee hoge surrogaten (U+D801 en U+D802) in een rij bevat. Dit is een ongeldige tekenreeks. Een hoog surrogaat moet altijd worden gevolgd door een lage surrogaat.

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.

Opmerkingen

De encoderShouldEmitUTF8Identifier parameter bepaalt de werking van de GetPreamble methode. Als true, de methode retourneert een bytematrix met de Unicode byte order mark (BOM) in UTF-8-indeling. Als false, retourneert het een bytematrix met lengte nul. Als encoderShouldEmitUTF8Identifiertrue u deze instelling echter niet veroorzaakt, wordt de stuklijst aan het begin van de bytematrix voorafgegaan door de GetBytes methode en wordt het GetByteCount aantal bytes in de stuklijst in het byteaantal opgenomen.

Als throwOnInvalidBytes dat het is true, genereert een methode waarmee een ongeldige bytevolgorde een System.ArgumentException uitzondering wordt gegenereerd. Anders genereert de methode geen uitzondering en wordt de ongeldige reeks genegeerd.

Caution

Om veiligheidsredenen moet u foutdetectie inschakelen door een constructor aan te roepen die een throwOnInvalidBytes parameter bevat en die parameter instelt op true.

Zie ook

Van toepassing op