ASCIIEncoding Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una codifica di caratteri ASCII di caratteri 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
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene illustrato come codificare i caratteri Unicode in ASCII. Si noti la perdita di dati che si verifica quando l'applicazione usa ASCIIEncoding per codificare caratteri Unicode all'esterno dell'intervallo 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 (?).
Commenti
La codifica è il processo di trasformazione di un set di caratteri Unicode in una sequenza di byte. La decodifica è il processo di trasformazione di una sequenza di byte codificati in un set di caratteri Unicode.
ASCIIEncoding corrisponde alla tabella codici di Windows 20127. Poiché ASCII è una codifica a 7 bit, i caratteri ASCII sono limitati ai 128 caratteri Unicode più bassi, da U+0000 a U+007F. Se si usa il codificatore predefinito restituito dalla Encoding.ASCII proprietà o dal ASCIIEncoding costruttore, i caratteri al di fuori di tale intervallo vengono sostituiti con un punto interrogativo (?) prima dell'esecuzione dell'operazione di codifica. Poiché la ASCIIEncoding classe supporta solo un set di caratteri limitato, le UTF8Encodingclassi , UnicodeEncodinge UTF32Encoding sono più adatte per le applicazioni globalizzate. Le considerazioni seguenti consentono di decidere se usare ASCIIEncoding:
Alcuni protocolli richiedono ASCII o un subset di ASCII. In questi casi la codifica ASCII è appropriata.
Se è prevista una codifica a 8 bit, ASCII probabilmente non è la scelta corretta. Prendere invece in considerazione l'uso di UTF8 anziché ASCII. Per i caratteri da U+0000 a U+007F, i risultati sono identici, ma tutti i caratteri Unicode sono rappresentabili in UTF-8, evitando la perdita di dati.
Attenzione
ASCIIEncoding non fornisce il rilevamento degli errori. Per motivi di sicurezza, è consigliabile usare UTF8Encoding, UnicodeEncodingo UTF32Encoding e abilitare il rilevamento degli errori.
Il GetByteCount metodo determina il numero di byte risultanti dalla codifica di un set di caratteri Unicode e il GetBytes metodo esegue la codifica effettiva.
Analogamente, il GetCharCount metodo determina il numero di caratteri che comportano la decodifica di una sequenza di byte e i GetChars metodi e GetString eseguono la decodifica effettiva.
Si noti che il costruttore predefinito ASCIIEncoding potrebbe non avere il comportamento appropriato per l'applicazione. È consigliabile impostare la EncoderFallback proprietà o DecoderFallback su EncoderExceptionFallback o DecoderExceptionFallback per impedire sequenze con l'8° bit impostato. Il comportamento personalizzato potrebbe anche essere appropriato per questi casi.
Costruttori
| Nome | Descrizione |
|---|---|
| ASCIIEncoding() |
Inizializza una nuova istanza della classe ASCIIEncoding. |
Proprietà
| Nome | Descrizione |
|---|---|
| BodyName |
In caso di override in una classe derivata, ottiene un nome per la codifica corrente che può essere utilizzata con i tag del corpo dell'agente di posta. (Ereditato da Encoding) |
| CodePage |
In caso di override in una classe derivata, ottiene l'identificatore della tabella codici dell'oggetto corrente Encoding. (Ereditato da Encoding) |
| DecoderFallback |
Ottiene o imposta l'oggetto DecoderFallback per l'oggetto corrente Encoding . (Ereditato da Encoding) |
| EncoderFallback |
Ottiene o imposta l'oggetto EncoderFallback per l'oggetto corrente Encoding . (Ereditato da Encoding) |
| EncodingName |
In caso di override in una classe derivata, ottiene la descrizione leggibile della codifica corrente. (Ereditato da Encoding) |
| HeaderName |
In caso di override in una classe derivata, ottiene un nome per la codifica corrente che può essere utilizzata con i tag di intestazione dell'agente di posta elettronica. (Ereditato da Encoding) |
| IsBrowserDisplay |
In caso di override in una classe derivata, ottiene un valore che indica se la codifica corrente può essere utilizzata dai client del browser per la visualizzazione del contenuto. (Ereditato da Encoding) |
| IsBrowserSave |
In caso di override in una classe derivata, ottiene un valore che indica se la codifica corrente può essere utilizzata dai client del browser per il salvataggio del contenuto. (Ereditato da Encoding) |
| IsMailNewsDisplay |
In caso di override in una classe derivata, ottiene un valore che indica se la codifica corrente può essere utilizzata dai client di posta elettronica e notizie per la visualizzazione del contenuto. (Ereditato da Encoding) |
| IsMailNewsSave |
In caso di override in una classe derivata, ottiene un valore che indica se la codifica corrente può essere utilizzata dai client di posta elettronica e notizie per il salvataggio del contenuto. (Ereditato da Encoding) |
| IsReadOnly |
In caso di override in una classe derivata, ottiene un valore che indica se la codifica corrente è di sola lettura. (Ereditato da Encoding) |
| IsSingleByte |
Ottiene un valore che indica se la codifica corrente utilizza punti di codice a byte singolo. |
| Preamble |
Quando sottoposto a override in una classe derivata, restituisce un intervallo contenente la sequenza di byte che specifica la codifica utilizzata. (Ereditato da Encoding) |
| WebName |
In caso di override in una classe derivata, ottiene il nome registrato con Internet Assigned Numbers Authority (IANA) per la codifica corrente. (Ereditato da Encoding) |
| WindowsCodePage |
Quando sottoposto a override in una classe derivata, ottiene la tabella codici del sistema operativo Windows che corrisponde più strettamente alla codifica corrente. (Ereditato da Encoding) |
Metodi
| Nome | Descrizione |
|---|---|
| Clone() |
Quando sottoposto a override in una classe derivata, crea una copia superficiale dell'oggetto corrente Encoding . (Ereditato da Encoding) |
| Equals(Object) |
Determina se l'oggetto specificato Object è uguale all'istanza corrente. (Ereditato da Encoding) |
| GetByteCount(Char[], Int32, Int32) |
Calcola il numero di byte prodotti dalla codifica di un set di caratteri dalla matrice di caratteri specificata. |
| GetByteCount(Char[]) |
Quando sottoposto a override in una classe derivata, calcola il numero di byte prodotti dalla codifica di tutti i caratteri nella matrice di caratteri specificata. (Ereditato da Encoding) |
| GetByteCount(Char*, Int32) |
Calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore di caratteri specificato. |
| GetByteCount(ReadOnlySpan<Char>) |
Calcola il numero di byte prodotti dalla codifica dell'intervallo di caratteri specificato. |
| GetByteCount(ReadOnlySpan<Char>) |
Quando sottoposto a override in una classe derivata, calcola il numero di byte prodotti dalla codifica dei caratteri nell'intervallo di caratteri specificato. (Ereditato da Encoding) |
| GetByteCount(String, Int32, Int32) |
In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri dalla stringa specificata. (Ereditato da Encoding) |
| GetByteCount(String) |
Calcola il numero di byte prodotti dalla codifica dei caratteri nell'oggetto specificato String. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Codifica un set di caratteri dalla matrice di caratteri specificata nella matrice di byte specificata. |
| GetBytes(Char[], Int32, Int32) |
In caso di override in una classe derivata, codifica un set di caratteri dalla matrice di caratteri specificata in una sequenza di byte. (Ereditato da Encoding) |
| GetBytes(Char[]) |
In caso di override in una classe derivata, codifica tutti i caratteri nella matrice di caratteri specificata in una sequenza di byte. (Ereditato da Encoding) |
| GetBytes(Char*, Int32, Byte*, Int32) |
Codifica un set di caratteri a partire dal puntatore di caratteri specificato in una sequenza di byte archiviati a partire dal puntatore di byte specificato. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Codifica l'intervallo di caratteri specificato nell'intervallo di byte specificato. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Quando sottoposto a override in una classe derivata, codifica in un intervallo di byte un set di caratteri dall'intervallo di sola lettura specificato. (Ereditato da Encoding) |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Codifica un set di caratteri dall'oggetto specificato String nella matrice di byte specificata. |
| GetBytes(String, Int32, Int32) |
Quando sottoposto a override in una classe derivata, codifica in una matrice di byte il numero di caratteri specificato dalla |
| GetBytes(String) |
Quando sottoposto a override in una classe derivata, codifica tutti i caratteri nella stringa specificata in una sequenza di byte. (Ereditato da Encoding) |
| GetCharCount(Byte[], Int32, Int32) |
Calcola il numero di caratteri prodotti dalla decodifica di una sequenza di byte dalla matrice di byte specificata. |
| GetCharCount(Byte[]) |
In caso di override in una classe derivata, calcola il numero di caratteri prodotti decodificando tutti i byte nella matrice di byte specificata. (Ereditato da Encoding) |
| GetCharCount(Byte*, Int32) |
Calcola il numero di caratteri prodotti dalla decodifica di una sequenza di byte a partire dal puntatore di byte specificato. |
| GetCharCount(ReadOnlySpan<Byte>) |
Calcola il numero di caratteri prodotti dalla decodifica dell'intervallo di byte specificato. |
| GetCharCount(ReadOnlySpan<Byte>) |
In caso di override in una classe derivata, calcola il numero di caratteri prodotti decodificando l'intervallo di byte di sola lettura fornito. (Ereditato da Encoding) |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Decodifica una sequenza di byte dalla matrice di byte specificata nella matrice di caratteri specificata. |
| GetChars(Byte[], Int32, Int32) |
In caso di override in una classe derivata, decodifica una sequenza di byte dalla matrice di byte specificata in un set di caratteri. (Ereditato da Encoding) |
| GetChars(Byte[]) |
In caso di override in una classe derivata, decodifica tutti i byte nella matrice di byte specificata in un set di caratteri. (Ereditato da Encoding) |
| GetChars(Byte*, Int32, Char*, Int32) |
Decodifica una sequenza di byte a partire dal puntatore di byte specificato in un set di caratteri archiviati a partire dal puntatore di caratteri specificato. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Decodifica l'intervallo di byte specificato nell'intervallo di caratteri specificato. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
In caso di override in una classe derivata, decodifica tutti i byte nell'intervallo di byte di sola lettura specificato in un intervallo di caratteri. (Ereditato da Encoding) |
| GetDecoder() |
Ottiene un decodificatore che converte una sequenza di byte codificata ASCII in una sequenza di caratteri Unicode. |
| GetDecoder() |
In caso di override in una classe derivata, ottiene un decodificatore che converte una sequenza codificata di byte in una sequenza di caratteri. (Ereditato da Encoding) |
| GetEncoder() |
Ottiene un codificatore che converte una sequenza di caratteri Unicode in una sequenza di byte codificata ASCII. |
| GetEncoder() |
In caso di override in una classe derivata, ottiene un codificatore che converte una sequenza di caratteri Unicode in una sequenza codificata di byte. (Ereditato da Encoding) |
| GetHashCode() |
Restituisce il codice hash per l'istanza corrente. (Ereditato da Encoding) |
| GetMaxByteCount(Int32) |
Calcola il numero massimo di byte prodotti dalla codifica del numero specificato di caratteri. |
| GetMaxCharCount(Int32) |
Calcola il numero massimo di caratteri prodotti dalla decodifica del numero specificato di byte. |
| GetPreamble() |
Quando sottoposto a override in una classe derivata, restituisce una sequenza di byte che specifica la codifica utilizzata. (Ereditato da Encoding) |
| GetString(Byte[], Int32, Int32) |
Decodifica un intervallo di byte da una matrice di byte in una stringa. |
| GetString(Byte[]) |
Rappresenta una codifica di caratteri ASCII di caratteri Unicode. |
| GetString(Byte[]) |
In caso di override in una classe derivata, decodifica tutti i byte nella matrice di byte specificata in una stringa. (Ereditato da Encoding) |
| GetString(Byte*, Int32) |
Quando sottoposto a override in una classe derivata, decodifica un numero specificato di byte a partire da un indirizzo specificato in una stringa. (Ereditato da Encoding) |
| GetString(ReadOnlySpan<Byte>) |
Quando sottoposto a override in una classe derivata, decodifica tutti i byte nell'intervallo di byte specificato in una stringa. (Ereditato da Encoding) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IsAlwaysNormalized() |
Ottiene un valore che indica se la codifica corrente è sempre normalizzata, utilizzando il formato di normalizzazione predefinito. (Ereditato da Encoding) |
| IsAlwaysNormalized(NormalizationForm) |
In caso di override in una classe derivata, ottiene un valore che indica se la codifica corrente è sempre normalizzata, utilizzando il formato di normalizzazione specificato. (Ereditato da Encoding) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) |
Codifica in un intervallo di byte un set di caratteri dall'intervallo di sola lettura specificato se la destinazione è sufficientemente grande. |
| TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |
Decodifica in un intervallo di caratteri un set di byte dall'intervallo di sola lettura specificato se la destinazione è sufficientemente grande. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
Decodifica l'oggetto specificato ReadOnlySequence<T> in |
| GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
Codifica l'oggetto specificato ReadOnlySequence<T> in |
| GetBytes(Encoding, ReadOnlySequence<Char>) |
Codifica l'oggetto specificato ReadOnlySequence<T> in una Byte matrice usando l'oggetto specificato Encoding. |
| GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
Codifica l'oggetto specificato ReadOnlySpan<T> in |
| GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
Decodifica l'oggetto specificato ReadOnlySequence<T> in |
| GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
Decodifica l'oggetto specificato ReadOnlySequence<T> in |
| GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
Decodifica l'oggetto specificato ReadOnlySpan<T> in |
| GetString(Encoding, ReadOnlySequence<Byte>) |
Decodifica l'oggetto specificato ReadOnlySequence<T> in un String oggetto utilizzando l'oggetto specificato Encoding. |