ASCIIEncoding Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma codificação de caracteres ASCII de caracteres Unicode.
public ref class ASCIIEncoding : System::Text::Encoding
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ASCIIEncoding : System.Text.Encoding
type ASCIIEncoding = class
inherit Encoding
[<System.Serializable>]
type ASCIIEncoding = class
inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ASCIIEncoding = class
inherit Encoding
Public Class ASCIIEncoding
Inherits Encoding
- Herança
- Atributos
Exemplos
O exemplo a seguir demonstra como codificar caracteres Unicode em ASCII. Observe a perda de dados que ocorre quando seu aplicativo usa para codificar caracteres ASCIIEncoding Unicode fora do intervalo ASCII.
using System;
using System.Text;
class ASCIIEncodingExample {
public static void Main() {
// The encoding.
ASCIIEncoding ascii = new ASCIIEncoding();
// A Unicode string with two characters outside the ASCII code range.
String unicodeString =
"This Unicode string contains two characters " +
"with codes outside the ASCII code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Save positions of the special characters for later reference.
int indexOfPi = unicodeString.IndexOf('\u03a0');
int indexOfSigma = unicodeString.IndexOf('\u03a3');
// Encode string.
Byte[] encodedBytes = ascii.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Notice that the special characters have been replaced with
// the value 63, which is the ASCII character code for '?'.
Console.WriteLine();
Console.WriteLine(
"Value at position of Pi character: {0}",
encodedBytes[indexOfPi]
);
Console.WriteLine(
"Value at position of Sigma character: {0}",
encodedBytes[indexOfSigma]
);
// Decode bytes back to string.
// Notice missing Pi and Sigma characters.
String decodedString = ascii.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}
}
// The example displays the following output:
// Original string:
// This Unicode string contains two characters with codes outside the ASCII code ra
// nge, Pi (Π) and Sigma (Σ).
//
// Encoded bytes:
// [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
// [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
// 104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
// 00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
// 83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
// 05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
// [46]
//
// Value at position of Pi character: 63
// Value at position of Sigma character: 63
//
// Decoded bytes:
// This Unicode string contains two characters with codes outside the ASCII code ra
// nge, Pi (?) and Sigma (?).
Imports System.Text
Class ASCIIEncodingExample
Public Shared Sub Main()
' The encoding.
Dim ascii As New ASCIIEncoding()
' A Unicode string with two characters outside the ASCII code range.
Dim unicodeString As String = _
"This Unicode string contains two characters " & _
"with codes outside the ASCII code range, " & _
"Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
Console.WriteLine("Original string:")
Console.WriteLine(unicodeString)
' Save positions of the special characters for later reference.
Dim indexOfPi As Integer = unicodeString.IndexOf(ChrW(928))
Dim indexOfSigma As Integer = unicodeString.IndexOf(ChrW(931))
' Encode string.
Dim encodedBytes As Byte() = ascii.GetBytes(unicodeString)
Console.WriteLine()
Console.WriteLine("Encoded bytes:")
Dim b As Byte
For Each b In encodedBytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
' Notice that the special characters have been replaced with
' the value 63, which is the ASCII character code for '?'.
Console.WriteLine()
Console.WriteLine( _
"Value at position of Pi character: {0}", _
encodedBytes(indexOfPi) _
)
Console.WriteLine( _
"Value at position of Sigma character: {0}", _
encodedBytes(indexOfSigma) _
)
' Decode bytes back to string.
' Notice missing Pi and Sigma characters.
Dim decodedString As String = ascii.GetString(encodedBytes)
Console.WriteLine()
Console.WriteLine("Decoded bytes:")
Console.WriteLine(decodedString)
End Sub
End Class
' The example displays the following output:
' Original string:
' This Unicode string contains two characters with codes outside the ASCII code ra
' nge, Pi (Π) and Sigma (Σ).
'
' Encoded bytes:
' [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
' [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
' 104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
' 00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
' 83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
' 05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
' [46]
'
' Value at position of Pi character: 63
' Value at position of Sigma character: 63
'
' Decoded bytes:
' This Unicode string contains two characters with codes outside the ASCII code ra
' nge, Pi (?) and Sigma (?).
Comentários
A codificação é o processo de transformação de um conjunto de caracteres Unicode em uma sequência de bytes. A decodificação é o processo de transformar uma sequência de bytes codificados em um conjunto de caracteres Unicode.
ASCIIEncoding corresponde à página de código do Windows 20127. Como ASCII é uma codificação de 7 bits, os caracteres ASCII são limitados aos 128 caracteres Unicode mais baixos, de U+0000 a U+007F. Se você usar o codificador padrão retornado pela propriedade ou pelo Encoding.ASCII construtor, os ASCIIEncoding caracteres fora desse intervalo serão substituídos por um ponto de interrogação (?) antes que a operação de codificação seja executada. Como a ASCIIEncoding classe dá suporte apenas a um conjunto de caracteres limitado, as UTF8Encodingclasses e UTF32Encoding o UnicodeEncodingconjunto de caracteres são mais adequados para aplicativos globalizados. As seguintes considerações podem ajudá-lo a decidir se deseja usar ASCIIEncoding:
Alguns protocolos exigem ASCII ou um subconjunto de ASCII. Nesses casos, a codificação ASCII é apropriada.
Se uma codificação de 8 bits for esperada, o ASCII provavelmente não será a escolha correta. Em vez disso, considere usar UTF8 em vez de ASCII. Para os caracteres U+0000 a U+007F, os resultados são idênticos, mas todos os caracteres Unicode são representáveis em UTF-8, o que evita a perda de dados.
Cuidado
ASCIIEncoding não fornece detecção de erros. Por motivos de segurança, você deve usar UTF8Encodinge UnicodeEncodingUTF32Encoding habilitar a detecção de erros.
O GetByteCount método determina quantos bytes resultam na codificação de um conjunto de caracteres Unicode e o GetBytes método executa a codificação real.
Da mesma forma, o GetCharCount método determina quantos caracteres resultam na decodificação de uma sequência de bytes e os GetChars métodos e GetString executam a decodificação real.
Observe que o construtor padrão ASCIIEncoding por si só pode não ter o comportamento apropriado para seu aplicativo. Talvez você queira considerar a configuração ou EncoderFallbackDecoderFallback propriedade para EncoderExceptionFallback ou DecoderExceptionFallback para impedir sequências com o conjunto de 8 bits. O comportamento personalizado também pode ser apropriado para esses casos.
Construtores
| Nome | Description |
|---|---|
| ASCIIEncoding() |
Inicializa uma nova instância da classe ASCIIEncoding. |
Propriedades
| Nome | Description |
|---|---|
| BodyName |
Quando substituído em uma classe derivada, obtém um nome para a codificação atual que pode ser usada com marcas de corpo do agente de email. (Herdado de Encoding) |
| CodePage |
Quando substituído em uma classe derivada, obtém o identificador de página de código do atual Encoding. (Herdado de Encoding) |
| DecoderFallback |
Obtém ou define o DecoderFallback objeto para o objeto atual Encoding . (Herdado de Encoding) |
| EncoderFallback |
Obtém ou define o EncoderFallback objeto para o objeto atual Encoding . (Herdado de Encoding) |
| EncodingName |
Quando substituído em uma classe derivada, obtém a descrição legível por humanos da codificação atual. (Herdado de Encoding) |
| HeaderName |
Quando substituído em uma classe derivada, obtém um nome para a codificação atual que pode ser usada com marcas de cabeçalho do agente de email. (Herdado de Encoding) |
| IsBrowserDisplay |
Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual pode ser usada por clientes do navegador para exibir conteúdo. (Herdado de Encoding) |
| IsBrowserSave |
Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual pode ser usada por clientes do navegador para salvar conteúdo. (Herdado de Encoding) |
| IsMailNewsDisplay |
Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual pode ser usada por clientes de email e notícias para exibir conteúdo. (Herdado de Encoding) |
| IsMailNewsSave |
Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual pode ser usada por clientes de email e notícias para salvar conteúdo. (Herdado de Encoding) |
| IsReadOnly |
Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual é somente leitura. (Herdado de Encoding) |
| IsSingleByte |
Obtém um valor que indica se a codificação atual usa pontos de código de byte único. |
| Preamble |
Quando substituído em uma classe derivada, retorna um intervalo que contém a sequência de bytes que especifica a codificação usada. (Herdado de Encoding) |
| WebName |
Quando substituído em uma classe derivada, obtém o nome registrado com a IANA (Autoridade de Números Atribuídos à Internet) para a codificação atual. (Herdado de Encoding) |
| WindowsCodePage |
Quando substituído em uma classe derivada, obtém a página de código do sistema operacional Windows que corresponde mais de perto à codificação atual. (Herdado de Encoding) |
Métodos
| Nome | Description |
|---|---|
| Clone() |
Quando substituído em uma classe derivada, cria uma cópia superficial do objeto atual Encoding . (Herdado de Encoding) |
| Equals(Object) |
Determina se o especificado Object é igual à instância atual. (Herdado de Encoding) |
| GetByteCount(Char[], Int32, Int32) |
Calcula o número de bytes produzidos codificando um conjunto de caracteres da matriz de caracteres especificada. |
| GetByteCount(Char[]) |
Quando substituído em uma classe derivada, calcula o número de bytes produzidos pela codificação de todos os caracteres na matriz de caracteres especificada. (Herdado de Encoding) |
| GetByteCount(Char*, Int32) |
Calcula o número de bytes produzidos codificando um conjunto de caracteres começando no ponteiro de caractere especificado. |
| GetByteCount(ReadOnlySpan<Char>) |
Calcula o número de bytes produzidos codificando o intervalo de caracteres especificado. |
| GetByteCount(ReadOnlySpan<Char>) |
Quando substituído em uma classe derivada, calcula o número de bytes produzidos pela codificação dos caracteres no intervalo de caracteres especificado. (Herdado de Encoding) |
| GetByteCount(String, Int32, Int32) |
Quando substituído em uma classe derivada, calcula o número de bytes produzidos pela codificação de um conjunto de caracteres da cadeia de caracteres especificada. (Herdado de Encoding) |
| GetByteCount(String) |
Calcula o número de bytes produzidos codificando os caracteres no especificado String. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Codifica um conjunto de caracteres da matriz de caracteres especificada na matriz de bytes especificada. |
| GetBytes(Char[], Int32, Int32) |
Quando substituído em uma classe derivada, codifica um conjunto de caracteres da matriz de caracteres especificada em uma sequência de bytes. (Herdado de Encoding) |
| GetBytes(Char[]) |
Quando substituído em uma classe derivada, codifica todos os caracteres na matriz de caracteres especificada em uma sequência de bytes. (Herdado de Encoding) |
| GetBytes(Char*, Int32, Byte*, Int32) |
Codifica um conjunto de caracteres começando no ponteiro de caractere especificado em uma sequência de bytes que são armazenados a partir do ponteiro de bytes especificado. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Codifica o intervalo de caracteres especificado no intervalo de bytes especificado. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Quando substituído em uma classe derivada, codifica em um intervalo de bytes um conjunto de caracteres do intervalo somente leitura especificado. (Herdado de Encoding) |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Codifica um conjunto de caracteres do especificado String na matriz de bytes especificada. |
| GetBytes(String, Int32, Int32) |
Quando substituído em uma classe derivada, codifica em uma matriz de bytes o número de caracteres especificado pela |
| GetBytes(String) |
Quando substituído em uma classe derivada, codifica todos os caracteres na cadeia de caracteres especificada em uma sequência de bytes. (Herdado de Encoding) |
| GetCharCount(Byte[], Int32, Int32) |
Calcula o número de caracteres produzidos decodificação de uma sequência de bytes da matriz de bytes especificada. |
| GetCharCount(Byte[]) |
Quando substituído em uma classe derivada, calcula o número de caracteres produzidos pela decodificação de todos os bytes na matriz de bytes especificada. (Herdado de Encoding) |
| GetCharCount(Byte*, Int32) |
Calcula o número de caracteres produzidos decodificação de uma sequência de bytes começando no ponteiro de bytes especificado. |
| GetCharCount(ReadOnlySpan<Byte>) |
Calcula o número de caracteres produzidos decodificação do intervalo de bytes especificado. |
| GetCharCount(ReadOnlySpan<Byte>) |
Quando substituído em uma classe derivada, calcula o número de caracteres produzidos pela decodificação do intervalo de bytes somente leitura fornecido. (Herdado de Encoding) |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Decodifica uma sequência de bytes da matriz de bytes especificada na matriz de caracteres especificada. |
| GetChars(Byte[], Int32, Int32) |
Quando substituído em uma classe derivada, decodifica uma sequência de bytes da matriz de bytes especificada em um conjunto de caracteres. (Herdado de Encoding) |
| GetChars(Byte[]) |
Quando substituído em uma classe derivada, decodifica todos os bytes na matriz de bytes especificada em um conjunto de caracteres. (Herdado de Encoding) |
| GetChars(Byte*, Int32, Char*, Int32) |
Decodifica uma sequência de bytes começando no ponteiro de bytes especificado em um conjunto de caracteres armazenados a partir do ponteiro de caractere especificado. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Decodifica o intervalo de bytes especificado no intervalo de caracteres especificado. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Quando substituído em uma classe derivada, decodifica todos os bytes no intervalo de bytes somente leitura especificado em um intervalo de caracteres. (Herdado de Encoding) |
| GetDecoder() |
Obtém um decodificador que converte uma sequência de bytes codificada em ASCII em uma sequência de caracteres Unicode. |
| GetDecoder() |
Quando substituído em uma classe derivada, obtém um decodificador que converte uma sequência codificada de bytes em uma sequência de caracteres. (Herdado de Encoding) |
| GetEncoder() |
Obtém um codificador que converte uma sequência de caracteres Unicode em uma sequência de bytes codificada em ASCII. |
| GetEncoder() |
Quando substituído em uma classe derivada, obtém um codificador que converte uma sequência de caracteres Unicode em uma sequência codificada de bytes. (Herdado de Encoding) |
| GetHashCode() |
Retorna o código hash da instância atual. (Herdado de Encoding) |
| GetMaxByteCount(Int32) |
Calcula o número máximo de bytes produzidos codificando o número especificado de caracteres. |
| GetMaxCharCount(Int32) |
Calcula o número máximo de caracteres produzidos decodificação do número especificado de bytes. |
| GetPreamble() |
Quando substituído em uma classe derivada, retorna uma sequência de bytes que especifica a codificação usada. (Herdado de Encoding) |
| GetString(Byte[], Int32, Int32) |
Decodifica um intervalo de bytes de uma matriz de bytes em uma cadeia de caracteres. |
| GetString(Byte[]) |
Representa uma codificação de caracteres ASCII de caracteres Unicode. |
| GetString(Byte[]) |
Quando substituído em uma classe derivada, decodifica todos os bytes na matriz de bytes especificada em uma cadeia de caracteres. (Herdado de Encoding) |
| GetString(Byte*, Int32) |
Quando substituído em uma classe derivada, decodifica um número especificado de bytes começando em um endereço especificado em uma cadeia de caracteres. (Herdado de Encoding) |
| GetString(ReadOnlySpan<Byte>) |
Quando substituído em uma classe derivada, decodifica todos os bytes no intervalo de bytes especificado em uma cadeia de caracteres. (Herdado de Encoding) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsAlwaysNormalized() |
Obtém um valor que indica se a codificação atual está sempre normalizada, usando o formulário de normalização padrão. (Herdado de Encoding) |
| IsAlwaysNormalized(NormalizationForm) |
Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual está sempre normalizada, usando o formulário de normalização especificado. (Herdado de Encoding) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) |
Codifica em um intervalo de bytes um conjunto de caracteres do intervalo somente leitura especificado se o destino for grande o suficiente. |
| TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |
Decodifica em um intervalo de caracteres um conjunto de bytes do intervalo somente leitura especificado se o destino for grande o suficiente. |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
Decodifica o especificado ReadOnlySequence<T> para |
| GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
Codifica o especificado ReadOnlySequence<T> para |
| GetBytes(Encoding, ReadOnlySequence<Char>) |
Codifica o especificado ReadOnlySequence<T> em uma Byte matriz usando o especificado Encoding. |
| GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
Codifica o especificado ReadOnlySpan<T> para |
| GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
Decodifica o especificado ReadOnlySequence<T> para |
| GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
Decodifica o especificado ReadOnlySequence<T> para |
| GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
Decodifica o especificado ReadOnlySpan<T> para |
| GetString(Encoding, ReadOnlySequence<Byte>) |
Decodifica o especificado ReadOnlySequence<T> em um String usando o .Encoding |