UTF8Encoding Konstruktorer

Definition

Initierar en ny instans av UTF8Encoding klassen.

Överlagringar

Name Description
UTF8Encoding()

Initierar en ny instans av UTF8Encoding klassen.

UTF8Encoding(Boolean)

Initierar en ny instans av UTF8Encoding klassen. En parameter anger om du vill ange ett Unicode-byteordningsmärke.

UTF8Encoding(Boolean, Boolean)

Initierar en ny instans av UTF8Encoding klassen. Parametrar anger om du vill ange ett Unicode-byteordningsmärke och om ett undantag ska utlösas när en ogiltig kodning identifieras.

UTF8Encoding()

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Initierar en ny instans av UTF8Encoding klassen.

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

Exempel

I följande exempel skapas en ny UTF8Encoding instans och dess namn visas.

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

Kommentarer

Den här konstruktorn skapar en instans som inte anger ett Unicode-byteordningsmärke och inte utlöser ett undantag när en ogiltig kodning identifieras.

Caution

Av säkerhetsskäl rekommenderar vi att du aktiverar felidentifiering genom att anropa en konstruktor med en throwOnInvalidBytes parameter och ange dess värde till true.

Se även

Gäller för

UTF8Encoding(Boolean)

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Initierar en ny instans av UTF8Encoding klassen. En parameter anger om du vill ange ett Unicode-byteordningsmärke.

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

Parametrar

encoderShouldEmitUTF8Identifier
Boolean

true för att ange att GetPreamble() metoden returnerar en Unicode-byteordningsmarkering, falseannars .

Exempel

I följande exempel skapas en ny UTF8Encoding instans och anger att prefixet Unicode byte order mark ska genereras av GetPreamble metoden. Metoden GetPreamble returnerar sedan prefixet Unicode byte order mark.

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

Kommentarer

Den här konstruktorn skapar en instans som inte utlöser ett undantag när en ogiltig kodning identifieras.

Caution

Av säkerhetsskäl bör du aktivera felidentifiering genom att anropa en konstruktor som innehåller en throwOnInvalidBytes parameter och ange dess värde till true.

Parametern encoderShouldEmitUTF8Identifier styr metodens GetPreamble funktion. Om truereturnerar metoden en bytematris som innehåller Unicode byte order mark (BOM) i UTF-8-format. Om falsereturnerar den en bytematris med noll längd. Om du anger encoderShouldEmitUTF8Identifier till true gör GetBytes det dock inte att metoden prefixar bommen i början av bytematrisen, och det gör GetByteCount inte heller att metoden inkluderar antalet byte i strukturlistan i byteantalet.

Se även

Gäller för

UTF8Encoding(Boolean, Boolean)

Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs
Källa:
UTF8Encoding.cs

Initierar en ny instans av UTF8Encoding klassen. Parametrar anger om du vill ange ett Unicode-byteordningsmärke och om ett undantag ska utlösas när en ogiltig kodning identifieras.

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)

Parametrar

encoderShouldEmitUTF8Identifier
Boolean

true för att ange att GetPreamble() metoden ska returnera en Unicode-byteordningsmarkering, falseannars .

throwOnInvalidBytes
Boolean

trueför att utlösa ett undantag när en ogiltig kodning identifieras. annars . false

Exempel

I följande exempel skapas en ny UTF8Encoding instans som anger att GetPreamble metoden inte ska generera prefixet Unicode byte order mark och ett undantag ska genereras när en ogiltig kodning identifieras. Beteendet för den här konstruktorn jämförs med standardkonstruktorn UTF8Encoding() , som inte utlöser ett undantag när en ogiltig kodning identifieras. De två UTF8Encoding instanserna kodar en teckenmatris som innehåller två höga surrogater (U+D801 och U+D802) i en rad, vilket är en ogiltig teckensekvens. En hög surrogat bör alltid följas av en låg surrogat.

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.

Kommentarer

Parametern encoderShouldEmitUTF8Identifier styr metodens GetPreamble funktion. Om truereturnerar metoden en bytematris som innehåller Unicode byte order mark (BOM) i UTF-8-format. Om falsereturnerar den en bytematris med noll längd. Om du anger encoderShouldEmitUTF8Identifier till true gör GetBytes det dock inte att metoden prefixar bommen i början av bytematrisen, och det gör GetByteCount inte heller att metoden inkluderar antalet byte i strukturlistan i byteantalet.

Om throwOnInvalidBytes är trueutlöser en metod som identifierar en ogiltig bytesekvens ett System.ArgumentException undantag. I annat fall utlöser inte metoden något undantag och den ogiltiga sekvensen ignoreras.

Caution

Av säkerhetsskäl bör du aktivera felidentifiering genom att anropa en konstruktor som innehåller en throwOnInvalidBytes parameter och ange parametern till true.

Se även

Gäller för