Compartilhar via


ASCIIEncoding Classe

Definição

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
ASCIIEncoding
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 count cadeia de caracteres especificada, começando pelo especificado index.

(Herdado de Encoding)
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 bytes usando o especificado Encoding e grava o resultado em writer.

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

Codifica o especificado ReadOnlySequence<T> para bytes usando o especificado Encoding e gera o resultado para bytes.

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 bytes usando o especificado Encoding e grava o resultado writerem .

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

Decodifica o especificado ReadOnlySequence<T> para chars usando o especificado Encoding e grava o resultado em writer.

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

Decodifica o especificado ReadOnlySequence<T> para chars usando o especificado Encoding e gera o resultado para chars.

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

Decodifica o especificado ReadOnlySpan<T> para chars usando o especificado Encoding e grava o resultado em writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Decodifica o especificado ReadOnlySequence<T> em um String usando o .Encoding

Aplica-se a

Confira também