UTF8Encoding Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.