Share via


Codage des types de base

Mise à jour : novembre 2007

Les caractères constituent des entités abstraites qui peuvent être représentées à l'aide de différents modèles de caractères ou pages de codes. Par exemple, le codage Unicode UTF-16 représente les caractères sous forme de séquences d'entiers 16 bits, tandis qu'Unicode UTF-8 représente les mêmes caractères sous forme d'octets de 8 bits. Le common language runtime utilise le codage Unicode UTF-16 (Unicode Transformation Format) pour représenter les caractères.

Les applications qui ciblent le common language runtime utilisent le codage pour mapper les représentations de caractères du modèle de caractères natif avec les autres modèles. Les applications utilisent le décodage pour mapper les caractères des modèles autres que le modèle natif avec le modèle natif. Les classes les plus fréquemment utilisées dans l'espace de noms System.Text pour coder et décoder des caractères sont listées dans le tableau ci-dessous.

Modèle de caractères

Classe

Explication

Codage ASCII

System.Text.ASCIIEncoding

Effectue la conversion en caractères ASCII ou de caractères ASCII.

Codage multiple

System.Text.Encoding

Convertit des caractères vers et à partir des différents codages spécifiés dans la méthode Convert.

Codage Unicode UTF-16

System.Text.UnicodeEncoding

Convertit les caractères vers ou à partir du format UTF-16. Ce modèle représente les caractères sous forme d'entiers 16 bits.

Codage Unicode UTF-8

System.Text.UTF8Encoding

Convertit les caractères vers ou à partir du format UTF-8. Ce modèle de codage de largeur variable représente les caractères qui utilisent entre un et quatre octets.

L'exemple de code suivant convertit une chaîne Unicode en tableau d'octets à l'aide de la méthode ASCIIEncoding.GetBytes. Chaque octet du tableau représente la valeur ASCII de la lettre par rapport à sa position dans la chaîne.

Dim MyString As String = "Encoding String."
Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = AE.GetBytes(MyString)
Dim x as Integer
For x = 0 To ByteArray.Length - 1
   Console.Write("{0} ", ByteArray(x))
Next
string MyString = "Encoding String.";
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = AE.GetBytes(MyString);
for(int x = 0;x <= ByteArray.Length - 1; x++)
{
   Console.Write("{0} ", ByteArray[x]);
}

L'exemple de code affiche ce qui suit la console. L'octet 69 représente la valeur ASCII du caractère E, l'octet 110 la valeur ASCII du caractère n, etc.

69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46

Le code suivant convertit le précédent tableau d'octets en un tableau de caractères à l'aide de la classe ASCIIEncoding. La méthode GetChars permet de décoder le tableau d'octets.

Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
Dim CharArray As Char() = AE.GetChars(ByteArray)
Dim x As Integer
For x = 0 To CharArray.Length - 1
   Console.Write(CharArray(x))
Next
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
char[] CharArray = AE.GetChars(ByteArray);
for(int x = 0;x <= CharArray.Length - 1; x++)
{
   Console.Write(CharArray[x]);
}

Le code précédent affiche le texte Encoding String. dans la console.

Voir aussi

Référence

System.Text

System.Text.ASCIIEncoding

System.Text.Encoding

System.Text.UnicodeEncoding

System.Text.UTF7Encoding

System.Text.UTF8Encoding

Autres ressources

Utilisation des types de base