ASCIIEncoding Classe
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.
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 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 |
| 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) |