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 seguinte demonstra como codificar caracteres Unicode em ASCII. Repare na perda de dados que ocorre quando a sua aplicação usa ASCIIEncoding para codificar caracteres 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 (?).

Observações

A codificação é o processo de transformar um conjunto de caracteres Unicode em uma sequência de bytes. A descodificação é o processo de transformar uma sequência de bytes codificados num conjunto de caracteres Unicode.

ASCIIEncoding corresponde à página de código Windows 20127. Como o ASCII é uma codificação de 7 bits, os caracteres ASCII estão limitados aos 128 caracteres Unicode mais baixos, de U+0000 a U+007F. Se usar o codificador padrão devolvido pela Encoding.ASCII propriedade ou pelo ASCIIEncoding construtor, os caracteres fora desse intervalo são substituídos por um ponto de interrogação (?) antes de a operação de codificação ser realizada. Como a ASCIIEncoding classe suporta apenas um conjunto limitado de caracteres, as UTF8Encodingclasses , UnicodeEncoding, e UTF32Encoding são mais adequadas para aplicações globalizadas. As seguintes considerações podem ajudá-lo a decidir se deve usar ASCIIEncoding:

  • Alguns protocolos exigem ASCII ou um subconjunto do ASCII. Nestes casos, a codificação ASCII é apropriada.

  • Se se espera uma codificação de 8 bits, então o ASCII provavelmente não é a escolha correta. Em vez disso, considera 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.

Atenção

ASCIIEncoding não fornece deteção de erros. Por razões de segurança, deve usar UTF8Encoding, UnicodeEncoding, ou UTF32Encoding e ativar a deteçã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 propriamente dita.

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 propriamente dita.

Note que o construtor padrão ASCIIEncoding por si só pode não ter o comportamento adequado para a sua aplicação. Poderás querer considerar definir a EncoderFallback propriedade or DecoderFallback para EncoderExceptionFallback ou DecoderExceptionFallback para prevenir sequências com o 8º bit definido. Comportamentos personalizados também podem ser apropriados nestes casos.

Construtores

Name Description
ASCIIEncoding()

Inicializa uma nova instância da ASCIIEncoding classe.

Propriedades

Name Description
BodyName

Quando sobrescrito numa classe derivada, obtém um nome para a codificação atual que pode ser usada com as tags do corpo do agente de correio.

(Herdado de Encoding)
CodePage

Quando sobrescrito numa classe derivada, obtém o identificador da 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 sobrescrito numa classe derivada, obtém a descrição legível por humanos da codificação atual.

(Herdado de Encoding)
HeaderName

Quando sobrescrito numa classe derivada, obtém um nome para a codificação atual que pode ser usado com etiquetas de cabeçalho de agente de correio.

(Herdado de Encoding)
IsBrowserDisplay

Quando sobrescrito numa classe derivada, obtém um valor que indica se a codificação atual pode ser usada pelos clientes do navegador para exibir conteúdo.

(Herdado de Encoding)
IsBrowserSave

Quando é sobreposto numa classe derivada, obtém um valor que indica se a codificação atual pode ser usada pelos clientes de navegador para guardar conteúdo.

(Herdado de Encoding)
IsMailNewsDisplay

Quando é sobreposto numa 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 é sobreposto numa classe derivada, obtém um valor que indica se a codificação atual pode ser usada por clientes de email e notícias para guardar conteúdo.

(Herdado de Encoding)
IsReadOnly

Quando é sobreposto numa classe derivada, obtém um valor que indica se a codificação atual é apenas de leitura.

(Herdado de Encoding)
IsSingleByte

Obtém um valor que indica se a codificação atual utiliza pontos de código de um byte.

Preamble

Quando sobrescrito numa classe derivada, devolve um span contendo a sequência de bytes que especifica a codificação utilizada.

(Herdado de Encoding)
WebName

Quando é sobreposto numa classe derivada, o nome é registado junto da Internet Assigned Numbers Authority (IANA) para a codificação atual.

(Herdado de Encoding)
WindowsCodePage

Quando sobrescrito numa classe derivada, obtém a página de código do sistema operativo Windows que mais corresponde à codificação atual.

(Herdado de Encoding)

Métodos

Name Description
Clone()

Quando sobreposta numa classe derivada, cria-se 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 ao codificar um conjunto de caracteres a partir do array de caracteres especificado.

GetByteCount(Char[])

Quando sobrescrito numa classe derivada, calcula o número de bytes produzidos ao codificar todos os caracteres do array de caracteres especificado.

(Herdado de Encoding)
GetByteCount(Char*, Int32)

Calcula o número de bytes produzidos ao codificar um conjunto de caracteres a partir do ponteiro especificado.

GetByteCount(ReadOnlySpan<Char>)

Quando sobrescrito numa 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 sobrescrito numa classe derivada, calcula o número de bytes produzidos ao codificar um conjunto de caracteres a partir da cadeia especificada.

(Herdado de Encoding)
GetByteCount(String)

Calcula o número de bytes produzidos ao codificar os caracteres no especificado String.

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Codifica um conjunto de caracteres do array de caracteres especificado no array de bytes especificado.

GetBytes(Char[], Int32, Int32)

Quando sobrescrito numa classe derivada, codifica um conjunto de caracteres do array de caracteres especificado numa sequência de bytes.

(Herdado de Encoding)
GetBytes(Char[])

Quando sobrescrito numa classe derivada, codifica todos os caracteres do array de caracteres especificado numa sequência de bytes.

(Herdado de Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Codifica um conjunto de caracteres a partir do ponteiro especificado numa sequência de bytes que são armazenados a partir do ponteiro especificado.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Quando sobrescrito numa classe derivada, codifica num espaço de bytes um conjunto de caracteres do intervalo de apenas leitura especificado.

(Herdado de Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Codifica um conjunto de caracteres do especificado String para o array de bytes especificado.

GetBytes(String, Int32, Int32)

Quando sobrescrito numa classe derivada, codifica num array de bytes o número de caracteres especificados por count na cadeia especificada, começando a partir do especificado index.

(Herdado de Encoding)
GetBytes(String)

Quando sobrescrito numa classe derivada, codifica todos os caracteres da cadeia especificada numa sequência de bytes.

(Herdado de Encoding)
GetCharCount(Byte[], Int32, Int32)

Calcula o número de caracteres produzidos ao descodificar uma sequência de bytes a partir do array de bytes especificado.

GetCharCount(Byte[])

Quando sobrescrito numa classe derivada, calcula o número de caracteres produzidos pela decodificação de todos os bytes no array de bytes especificado.

(Herdado de Encoding)
GetCharCount(Byte*, Int32)

Calcula o número de caracteres produzidos ao descodificar uma sequência de bytes a partir do ponteiro de bytes especificado.

GetCharCount(ReadOnlySpan<Byte>)

Quando sobrescrito numa classe derivada, calcula o número de caracteres produzidos ao descodificar o intervalo de bytes de apenas leitura fornecido.

(Herdado de Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Descodifica uma sequência de bytes do array de bytes especificado para o array de caracteres especificado.

GetChars(Byte[], Int32, Int32)

Quando sobrescrito numa classe derivada, decodifica uma sequência de bytes do array de bytes especificado num conjunto de caracteres.

(Herdado de Encoding)
GetChars(Byte[])

Quando sobrescrito numa classe derivada, descodifica todos os bytes do array de bytes especificado num conjunto de caracteres.

(Herdado de Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Decodifica uma sequência de bytes a partir do ponteiro de byte especificado num conjunto de caracteres que são armazenados a partir do ponteiro especificado.

GetChars(ReadOnlySpan<Byte>, Span<Char>)

Quando sobrescrito numa classe derivada, decodifica todos os bytes do intervalo de bytes especificado para apenas leitura num espaço de caracteres.

(Herdado de Encoding)
GetDecoder()

Obtém um descodificador que converte uma sequência de bytes codificada em ASCII numa sequência de caracteres Unicode.

GetDecoder()

Quando sobrescrito numa classe derivada, obtém-se um descodificador que converte uma sequência codificada de bytes numa sequência de caracteres.

(Herdado de Encoding)
GetEncoder()

Obtém um codificador que converte uma sequência de caracteres Unicode numa sequência de bytes codificada em ASCII.

GetEncoder()

Quando sobrescrito numa classe derivada, obtém-se um codificador que converte uma sequência de caracteres Unicode numa sequência codificada de bytes.

(Herdado de Encoding)
GetHashCode()

Devolve 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 ao descodificar o número especificado de bytes.

GetPreamble()

Quando sobrescrito numa classe derivada, devolve uma sequência de bytes que especifica a codificação utilizada.

(Herdado de Encoding)
GetString(Byte[], Int32, Int32)

Descodifica um intervalo de bytes de um array de bytes para uma cadeia.

GetString(Byte[])

Representa uma codificação de caracteres ASCII de caracteres Unicode.

GetString(Byte[])

Quando sobrescrito numa classe derivada, decodifica todos os bytes do array de bytes especificado numa string.

(Herdado de Encoding)
GetString(Byte*, Int32)

Quando é sobreposto numa classe derivada, decodifica um número especificado de bytes começando num endereço especificado numa cadeia.

(Herdado de Encoding)
GetString(ReadOnlySpan<Byte>)

Quando sobrescrito numa classe derivada, decodifica todos os bytes do intervalo de bytes especificado numa string.

(Herdado de Encoding)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsAlwaysNormalized()

Recebe um valor que indica se a codificação atual está sempre normalizada, usando a forma de normalização por defeito.

(Herdado de Encoding)
IsAlwaysNormalized(NormalizationForm)

Quando sobrescrito numa classe derivada, obtém um valor que indica se a codificação atual está sempre normalizada, usando a forma de normalização especificada.

(Herdado de Encoding)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também