ASCIIEncoding Classe

Définition

Représente un encodage de caractères ASCII de caractères 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
Héritage
ASCIIEncoding
Attributs

Exemples

L’exemple suivant montre comment encoder des caractères Unicode en ASCII. Notez la perte de données qui se produit lorsque votre application utilise ASCIIEncoding pour encoder des caractères Unicode en dehors de la plage 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 (?).

Remarques

L'encodage est le processus de transformation d'un jeu de caractères Unicode en une séquence d'octets. Le décodage est le processus de transformation d’une séquence d’octets encodés en un jeu de caractères Unicode.

ASCIIEncodingcorrespond à la page de codes Windows 20127. Comme ASCII est un encodage 7 bits, les caractères ASCII sont limités aux 128 caractères Unicode les plus faibles, de U + 0000 à U + 007F. Si vous utilisez l’encodeur par défaut retourné par la Encoding.ASCII propriété ou le ASCIIEncoding constructeur, les caractères en dehors de cette plage sont remplacés par un point d’interrogation ( ?) avant l’exécution de l’opération d’encodage. Étant donné que la ASCIIEncoding classe prend en charge uniquement un jeu de caractères limité, les UTF8Encoding UnicodeEncoding classes, et UTF32Encoding sont mieux adaptées aux applications globalisées. Les considérations suivantes peuvent vous aider à décider s’il convient d’utiliser ASCIIEncoding :

  • Certains protocoles requièrent ASCII ou un sous-ensemble de caractères ASCII. Dans ce cas, l’encodage ASCII est approprié.

  • Si un encodage 8 bits est attendu, ASCII n’est probablement pas le bon choix. Au lieu de cela, envisagez d’utiliser UTF8 au lieu de ASCII. Pour les caractères U + 0000 à U + 007F, les résultats sont identiques, mais tous les caractères Unicode sont représentables en UTF-8, ce qui évite toute perte de données.

Attention

ASCIIEncoding ne permet pas la détection d’erreurs. Pour des raisons de sécurité, vous devez utiliser UTF8Encoding , UnicodeEncoding ou UTF32Encoding et activer la détection d’erreurs.

La GetByteCount méthode détermine le nombre d’octets entraînant l’encodage d’un jeu de caractères Unicode, et la GetBytes méthode effectue l’encodage réel.

De même, la GetCharCount méthode détermine le nombre de caractères entraînant le décodage d’une séquence d’octets, et les GetChars GetString méthodes et effectuent le décodage réel.

Notez que le constructeur par défaut ASCIIEncoding peut ne pas avoir le comportement approprié pour votre application. Vous pouvez envisager de définir la EncoderFallback propriété ou DecoderFallback sur EncoderExceptionFallback ou DecoderExceptionFallback pour empêcher les séquences avec le 8ème bit défini. Le comportement personnalisé peut également être adapté à ces cas.

Constructeurs

ASCIIEncoding()

Initialise une nouvelle instance de la classe ASCIIEncoding.

Propriétés

BodyName

En cas de substitution dans une classe dérivée, obtient un nom pour l’encodage actuel qui peut être utilisé avec les étiquettes de corps de texte de l’agent de messagerie.

(Hérité de Encoding)
CodePage

En cas de substitution dans une classe dérivée, obtient l'identificateur de la page de codes du Encoding actuel.

(Hérité de Encoding)
DecoderFallback

Obtient ou définit l'objet DecoderFallback actuel de l'objet Encoding actuel.

(Hérité de Encoding)
EncoderFallback

Obtient ou définit l'objet EncoderFallback actuel de l'objet Encoding actuel.

(Hérité de Encoding)
EncodingName

En cas de substitution dans une classe dérivée, obtient la description explicite de l'encodage actuel.

(Hérité de Encoding)
HeaderName

En cas de substitution dans une classe dérivée, obtient un nom pour l’encodage actuel qui peut être utilisé avec les étiquettes d’en-tête de l’agent de messagerie.

(Hérité de Encoding)
IsBrowserDisplay

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de navigation pour afficher le contenu.

(Hérité de Encoding)
IsBrowserSave

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de navigation pour enregistrer du contenu.

(Hérité de Encoding)
IsMailNewsDisplay

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de messagerie et de news pour afficher du contenu.

(Hérité de Encoding)
IsMailNewsSave

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel peut être utilisé par les clients de messagerie et de news pour enregistrer du contenu.

(Hérité de Encoding)
IsReadOnly

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel est en lecture seule.

(Hérité de Encoding)
IsSingleByte

Obtient une valeur qui indique si l'encodage en cours utilise des points de code encodés sur un octet.

IsSingleByte

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel utilise des points de code codés sur un octet.

(Hérité de Encoding)
Preamble

En cas de substitution dans une classe dérivée, retourne une étendue contenant la séquence d'octets qui spécifie l'encodage utilisé.

(Hérité de Encoding)
WebName

En cas de substitution dans une classe dérivée, obtient le nom inscrit auprès de l'IANA (Internet Assigned Numbers Authority) pour l'encodage actuel.

(Hérité de Encoding)
WindowsCodePage

En cas de substitution dans une classe dérivée, obtient la page de codes du système d'exploitation Windows la plus proche de l'encodage actuel.

(Hérité de Encoding)

Méthodes

Clone()

En cas de substitution dans une classe dérivée, crée une copie superficielle de l'objet Encoding actuel.

(Hérité de Encoding)
Equals(Object)

Détermine si le Object spécifié est égal à l'instance actuelle.

(Hérité de Encoding)
GetByteCount(Char*, Int32)

Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères commençant au pointeur de caractère spécifié.

GetByteCount(Char*, Int32)

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage d'un jeu de caractères commençant au pointeur de caractère spécifié.

(Hérité de Encoding)
GetByteCount(Char[])

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage de tous les caractères du tableau de caractères spécifié.

(Hérité de Encoding)
GetByteCount(Char[], Int32, Int32)

Calcule le nombre d'octets produits par l'encodage d'un jeu de caractères du tableau de caractères spécifié.

GetByteCount(ReadOnlySpan<Char>)

Calcule le nombre d’octets générés par l’encodage de l’étendue de caractères spécifiée.

GetByteCount(ReadOnlySpan<Char>)

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage de tous les caractères de l’étendue de caractères spécifiée.

(Hérité de Encoding)
GetByteCount(String)

Calcule le nombre d'octets générés en encodant les caractères dans le String spécifié.

GetByteCount(String, Int32, Int32)

En cas de substitution dans une classe dérivée, calcule le nombre d'octets produits par l'encodage d'un jeu de caractères de la chaîne spécifiée.

(Hérité de Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

Code une séquence de caractères commençant au pointeur de caractère spécifié en une séquence d'octets, qui sera stockée à partir du pointeur d'octet spécifié.

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

En cas de substitution dans une classe dérivée, encode un jeu de caractères commençant au pointeur de caractère spécifié en une séquence d'octets stockés à partir du pointeur d'octet spécifié.

(Hérité de Encoding)
GetBytes(Char[])

En cas de substitution dans une classe dérivée, encode tous les caractères du tableau de caractères spécifié en une séquence d'octets.

(Hérité de Encoding)
GetBytes(Char[], Int32, Int32)

En cas de substitution dans une classe dérivée, encode un jeu de caractères du tableau de caractères spécifié en une séquence d'octets.

(Hérité de Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

Encode un jeu de caractères du tableau de caractères spécifié dans le tableau d'octets indiqué.

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

Encode l’étendue de caractères spécifiée dans l’étendue d’octets spécifiée.

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

En cas de substitution dans une classe dérivée, encode un jeu de caractères du tableau de caractères en lecture seule spécifié en séquence d'octets.

(Hérité de Encoding)
GetBytes(String)

En cas de substitution dans une classe dérivée, encode tous les caractères de la chaîne spécifiée en une séquence d'octets.

(Hérité de Encoding)
GetBytes(String, Int32, Int32)

En cas de substitution dans une classe dérivée, encode en un tableau d'octets le nombre de caractères spécifié par count dans la chaîne spécifiée, à partir de l’élément index spécifié.

(Hérité de Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

Encode un jeu de caractères de la chaîne String spécifiée dans le tableau d'octets indiqué.

GetCharCount(Byte*, Int32)

Calcule le nombre de caractères produits par le décodage d'une séquence d'octets commençant au pointeur d'octet spécifié.

GetCharCount(Byte*, Int32)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage d'une séquence d'octets commençant au pointeur d'octet spécifié.

(Hérité de Encoding)
GetCharCount(Byte[])

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage de tous les octets du tableau d'octets spécifié.

(Hérité de Encoding)
GetCharCount(Byte[], Int32, Int32)

Calcule le nombre de caractères produits par le décodage d'une séquence d'octets du tableau d'octets spécifié.

GetCharCount(ReadOnlySpan<Byte>)

Calcule le nombre de caractères produits par le décodage de l’étendue d’octets spécifiée.

GetCharCount(ReadOnlySpan<Byte>)

En cas de substitution dans une classe dérivée, calcule le nombre de caractères produits par le décodage de l’étendue d’octets en lecture seule fournie.

(Hérité de Encoding)
GetChars(Byte*, Int32, Char*, Int32)

Décode une séquence d'octets commençant au pointeur d'octet spécifié en un jeu de caractères qui sera stocké à partir du pointeur de caractère spécifié.

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

En cas de substitution dans une classe dérivée, décode une séquence d'octets commençant au pointeur d'octet spécifié en un jeu de caractères stockés à partir du pointeur de caractère spécifié.

(Hérité de Encoding)
GetChars(Byte[])

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en jeu de caractères.

(Hérité de Encoding)
GetChars(Byte[], Int32, Int32)

En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié en un jeu de caractères.

(Hérité de Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

Décode une séquence d'octets du tableau d'octets spécifié dans le tableau de caractères spécifié.

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

Décode l’étendue d’octets spécifiée dans l’étendue de caractères spécifiée.

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

En cas de substitution dans une classe dérivée, décode tous les octets de l’étendue d’octets en lecture seule spécifiée en jeu de caractères.

(Hérité de Encoding)
GetDecoder()

Obtient un décodeur qui convertit une séquence d'octets encodée en ASCII en une séquence de caractères Unicode.

GetDecoder()

En cas de substitution dans une classe dérivée, obtient un décodeur qui convertit une séquence d'octets encodée en séquence de caractères.

(Hérité de Encoding)
GetEncoder()

Obtient un encodeur qui convertit une séquence de caractères Unicode en une séquence d'octets encodée en ASCII.

GetEncoder()

En cas de substitution dans une classe dérivée, obtient un encodeur qui convertit une séquence de caractères Unicode en séquence d'octets encodée.

(Hérité de Encoding)
GetHashCode()

Retourne le code de hachage pour l'instance actuelle.

(Hérité de Encoding)
GetMaxByteCount(Int32)

Calcule le nombre maximal d'octets produits par l'encodage du nombre de caractères spécifié.

GetMaxCharCount(Int32)

Calcule le nombre maximal de caractères produits par le décodage du nombre d'octets spécifié.

GetPreamble()

En cas de substitution dans une classe dérivée, retourne une séquence d'octets qui spécifie l'encodage utilisé.

(Hérité de Encoding)
GetString(Byte*, Int32)

En cas de substitution dans une classe dérivée, décode un nombre d'octets spécifié en commençant à une adresse spécifiée dans une chaîne.

(Hérité de Encoding)
GetString(Byte[])
GetString(Byte[])

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en chaîne.

(Hérité de Encoding)
GetString(Byte[], Int32, Int32)

Décode une plage d'octets d'un tableau d'octets en une chaîne.

GetString(ReadOnlySpan<Byte>)

En cas de substitution dans une classe dérivée, décode tous les octets de l’étendue d'octets spécifiée en chaîne.

(Hérité de Encoding)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsAlwaysNormalized()

Obtient une valeur indiquant si l'encodage actuel est toujours normalisé en utilisant le formulaire de normalisation par défaut.

(Hérité de Encoding)
IsAlwaysNormalized(NormalizationForm)

En cas de substitution dans une classe dérivée, obtient une valeur indiquant si l'encodage actuel est toujours normalisé en utilisant le formulaire de normalisation spécifié.

(Hérité de Encoding)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Méthodes d’extension

GetBytes(Encoding, ReadOnlySequence<Char>)

Encode le ReadOnlySequence<T> spécifié dans un tableau Byte à l’aide du Encoding spécifié.

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

Décode le ReadOnlySequence<T> spécifié en bytes à l’aide du Encoding spécifié et écrit le résultat dans writer.

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

Encode le ReadOnlySequence<T> spécifié en bytes à l’aide du Encoding spécifié et génère le résultat dans bytes.

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

Encode le ReadOnlySpan<T> spécifié en bytes à l’aide du Encoding spécifié et écrit le résultat dans writer.

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

Décode le ReadOnlySequence<T> spécifié en chars à l’aide du Encoding spécifié et écrit le résultat dans writer.

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

Décode le ReadOnlySequence<T> spécifié en chars à l’aide du Encoding spécifié et génère le résultat dans chars.

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

Décode le ReadOnlySpan<T> spécifié en chars à l’aide du Encoding spécifié et écrit le résultat dans writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Décode le ReadOnlySequence<T> spécifié en un String à l’aide du Encoding spécifié.

S’applique à

Voir aussi