UTF8Encoding Construtores

Definição

Inicializa uma nova instância da UTF8Encoding classe.

Sobrecargas

Name Description
UTF8Encoding()

Inicializa uma nova instância da UTF8Encoding classe.

UTF8Encoding(Boolean)

Inicializa uma nova instância da UTF8Encoding classe. Um parâmetro especifica se deve fornecer uma marca de ordem de bytes Unicode.

UTF8Encoding(Boolean, Boolean)

Inicializa uma nova instância da UTF8Encoding classe. Os parâmetros especificam se deve fornecer uma marca de ordem de byte Unicode e se deve lançar uma exceção quando é detetada uma codificação inválida.

UTF8Encoding()

Inicializa uma nova instância da UTF8Encoding classe.

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

Exemplos

O exemplo seguinte cria uma nova UTF8Encoding instância e apresenta o seu nome.

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

Observações

Este construtor cria uma instância que não fornece uma marca de ordem de bytes Unicode e não lança uma exceção quando é detetada uma codificação inválida.

Atenção

Por razões de segurança, recomendamos que ative a deteção de erros chamando um construtor com um throwOnInvalidBytes parâmetro e definindo o seu valor para true.

Ver também

Aplica-se a

UTF8Encoding(Boolean)

Inicializa uma nova instância da UTF8Encoding classe. Um parâmetro especifica se deve fornecer uma marca de ordem de bytes Unicode.

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

Parâmetros

encoderShouldEmitUTF8Identifier
Boolean

true para especificar que o GetPreamble() método devolve uma marca de ordem de byte Unicode; caso contrário, false.

Exemplos

O exemplo seguinte cria uma nova UTF8Encoding instância e especifica que um prefixo de marca de ordem de bytes Unicode deve ser emitido pelo GetPreamble método. O GetPreamble método devolve então o prefixo de marca de ordem de bytes do 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

Observações

Este construtor cria uma instância que não lança uma exceção quando é detetada uma codificação inválida.

Atenção

Por razões de segurança, deve ativar a deteção de erros chamando um construtor que inclua um throwOnInvalidBytes parâmetro e definindo o seu valor para true.

O encoderShouldEmitUTF8Identifier parâmetro controla o funcionamento do GetPreamble método. Se true, o método devolve um array de bytes contendo a marca de ordem de bytes Unicode (BOM) no formato UTF-8. Se false, devolve um array de bytes de comprimento zero. No entanto, definir encoderShouldEmitUTF8Identifier para true não faz com que o GetBytes método prefixe a lista de materiais no início do array de bytes, nem faz com que o GetByteCount método inclua o número de bytes da lista de materiais na contagem de bytes.

Ver também

Aplica-se a

UTF8Encoding(Boolean, Boolean)

Inicializa uma nova instância da UTF8Encoding classe. Os parâmetros especificam se deve fornecer uma marca de ordem de byte Unicode e se deve lançar uma exceção quando é detetada uma codificação inválida.

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)

Parâmetros

encoderShouldEmitUTF8Identifier
Boolean

true para especificar que o GetPreamble() método deve devolver uma marca de ordem de bytes Unicode; caso contrário, false.

throwOnInvalidBytes
Boolean

true lançar uma exceção quando é detetada uma codificação inválida; caso contrário, false.

Exemplos

O exemplo seguinte cria uma nova UTF8Encoding instância, especificando que o GetPreamble método não deve emitir um prefixo de marca de ordem de byte Unicode, e uma exceção deve ser lançada quando é detetada uma codificação inválida. O comportamento deste construtor é comparado com o construtor padrão UTF8Encoding() , que não lança uma exceção quando é detetada uma codificação inválida. As duas UTF8Encoding instâncias codificam um array de caracteres que contém dois substitutos altos (U+D801 e U+D802) em sequência, que é uma sequência de caracteres inválida; um substituto alto deve ser sempre seguido por um substituto baixo.

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.

Observações

O encoderShouldEmitUTF8Identifier parâmetro controla o funcionamento do GetPreamble método. Se true, o método devolve um array de bytes contendo a marca de ordem de bytes Unicode (BOM) no formato UTF-8. Se false, devolve um array de bytes de comprimento zero. No entanto, definir encoderShouldEmitUTF8Identifier para true não faz com que o GetBytes método prefixe a lista de materiais no início do array de bytes, nem faz com que o GetByteCount método inclua o número de bytes da lista de materiais na contagem de bytes.

Se throwOnInvalidBytes for true, um método que deteta uma sequência de bytes inválida lança uma System.ArgumentException exceção. Caso contrário, o método não lança uma exceção, e a sequência inválida é ignorada.

Atenção

Por razões de segurança, deve ativar a deteção de erros chamando um construtor que inclua um throwOnInvalidBytes parâmetro e definindo esse parâmetro para true.

Ver também

Aplica-se a