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 namespace System;
using namespace System::Collections;
using namespace System::Text;
int main()
{
   
   // The encoding.
   ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
   
   // A Unicode string with two characters outside the ASCII code range.
   String^ unicodeString = L"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( L'\u03a0' );
   int indexOfSigma = unicodeString->IndexOf( L'\u03a3' );
   
   // Encode string.
   array<Byte>^encodedBytes = ascii->GetBytes( unicodeString );
   Console::WriteLine();
   Console::WriteLine( "Encoded bytes:" );
   IEnumerator^ myEnum = encodedBytes->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Byte b = safe_cast<Byte>(myEnum->Current);
      Console::Write( "->Item[ {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 (?).
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 transformar 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 construtor, os ASCIIEncoding caracteres fora desse intervalo serão substituídos por Encoding.ASCII um ponto de interrogação (?) antes que a operação de codificação seja executada. Como a classe dá suporte apenas a ASCIIEncoding um conjunto de caracteres limitado, as UTF8Encodingclasses , UnicodeEncodinge UTF32Encoding são mais adequadas 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, as ASCII provavelmente não serão 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 UTF8Encoding, UnicodeEncodingou UTF32Encoding e 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 da EncoderFallback propriedade ou DecoderFallback como EncoderExceptionFallback ou DecoderExceptionFallback para impedir sequências com o 8º bit definido. O comportamento personalizado também pode ser apropriado para esses casos.

Construtores

ASCIIEncoding()

Inicializa uma nova instância da classe ASCIIEncoding.

Propriedades

BodyName

Quando substituído em uma classe derivada, obtém um nome para a codificação atual que pode ser usado 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 Encoding atual.

(Herdado de Encoding)
DecoderFallback

Obtém ou define o objeto DecoderFallback para o objeto Encoding atual.

(Herdado de Encoding)
EncoderFallback

Obtém ou define o objeto EncoderFallback para o objeto Encoding atual.

(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 usado 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 do navegador e email 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 do navegador e email 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.

IsSingleByte

Quando substituído em uma classe derivada, obtém um valor que indica se a codificação atual usa pontos de código de byte único.

(Herdado de Encoding)
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 na IANA (Internet Assigned Numbers Authority) da codificação atual.

(Herdado de Encoding)
WindowsCodePage

Quando substituído em uma classe derivada, obtém a página de código de sistema operacional Windows que mais bem corresponde à codificação atual.

(Herdado de Encoding)

Métodos

Clone()

Quando substituído em uma classe derivada, cria uma cópia superficial do objeto Encoding atual.

(Herdado de Encoding)
Equals(Object)

Determina se o Object especificado é igual à instância atual.

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

Calcula o número de bytes produzidos ao codificar um conjunto de caracteres, começando no ponteiro de caracteres especificado.

GetByteCount(Char*, Int32)

Quando substituído em uma classe derivada, calcula o número de bytes produzidos pela codificação de um conjunto de caracteres começando no ponteiro de caracteres especificado.

(Herdado de Encoding)
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, Int32)

Calcula o número de bytes produzidos codificando um conjunto de caracteres da matriz de caracteres especificada.

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)

Calcula o número de bytes produzidos codificando todos os caracteres no String especificado.

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)
GetBytes(Char*, Int32, Byte*, Int32)

Codifica um conjunto de caracteres começando no ponteiro de caractere especificado em uma sequência de bytes armazenados começando no ponteiro de byte especificado.

GetBytes(Char*, Int32, Byte*, Int32)

Quando substituído em uma classe derivada, codifica um conjunto de caracteres começando no ponteiro de caractere especificado em uma sequência de bytes armazenados do ponteiro de bytes especificado.

(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, Int32)

Quando substituído em uma classe derivada, codifica um conjunto de caracteres na matriz de caracteres especificada em uma sequência de bytes.

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

Codifica um conjunto de caracteres da matriz de caracteres especificada na matriz de bytes especificada.

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)

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)
GetBytes(String, Int32, Int32)

Quando substituído em uma classe derivada, codifica em uma matriz de bytes o número de caracteres especificado por count na cadeia de caracteres especificada, começando do index especificado.

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

Codifica um conjunto de caracteres do String especificado para a matriz de bytes especificada.

GetCharCount(Byte*, Int32)

Calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes começando no ponteiro de bytes especificado.

GetCharCount(Byte*, Int32)

Quando substituído em uma classe derivada, calcula o número de caracteres produzidos usando a decodificação de uma sequência de bytes começando no ponteiro de bytes especificado.

(Herdado de Encoding)
GetCharCount(Byte[])

Quando substituído em uma classe derivada, calcula o número de caracteres produzidos decodificando todos os bytes na matriz de bytes especificada.

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

Calcula o número de caracteres produzidos pela decodificação de uma sequência de bytes da matriz de bytes especificada.

GetCharCount(ReadOnlySpan<Byte>)

Calcula o número de caracteres produzidos pela decodificação do intervalo de bytes especificado.

GetCharCount(ReadOnlySpan<Byte>)

Quando substituído em uma classe derivada, calcula o número de caracteres produzidos decodificando o intervalo de bytes somente leitura fornecido.

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

Decodifica uma sequência de bytes começando no ponteiro de byte especificado em um conjunto de caracteres armazenados começando no ponteiro de caractere especificado.

GetChars(Byte*, Int32, Char*, Int32)

Quando substituído em uma classe derivada, decodifica uma sequência de bytes iniciando no ponteiro de bytes especificado em um conjunto de caracteres começando no ponteiro de caractere especificado.

(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, 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[], Int32, Int32, Char[], Int32)

Decodifica uma sequência de bytes da matriz de bytes especificada na matriz de caracteres especificada.

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 ASCII codificada em uma sequência de caracteres Unicode.

GetDecoder()

Quando substituído em uma classe derivada, obtém um decodificador que converte uma sequência de bytes codificada 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 para a instância atual.

(Herdado de Encoding)
GetMaxByteCount(Int32)

Calcula o número máximo de bytes produzidos pela codificação do número de caracteres especificado.

GetMaxCharCount(Int32)

Calcula o número máximo de caracteres produzidos decodificando o número de bytes especificado.

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)

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(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, Int32)

Decodifica um intervalo de bytes de uma matriz de bytes em uma cadeia de caracteres.

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 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 sempre é normalizada usando a forma de normalização especificada.

(Herdado de Encoding)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(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.

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.

(Herdado de Encoding)
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.

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.

(Herdado de Encoding)

Métodos de Extensão

GetBytes(Encoding, ReadOnlySequence<Char>)

Codifica o ReadOnlySequence<T> especificado em uma matriz Byte usando o Encoding especificado.

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

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

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

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

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

Codifica o ReadOnlySpan<T> especificado para bytes usando o Encoding especificado e grava o resultado em writer.

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

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

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

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

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

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

GetString(Encoding, ReadOnlySequence<Byte>)

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

Aplica-se a

Confira também