Codage des types de base
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. Le tableau suivant répertorie les classes les plus fréquemment utilisées dans l'espace de noms System.Text pour coder et décoder les caractères.
Modèle de caractères | Classe | Explication |
---|---|---|
Codage ASCII |
Effectue la conversion en caractères ASCII ou de caractères ASCII. |
|
Codage multiple |
Effectue la conversion des caractères vers ou à partir des différents codages spécifiés dans la méthode Convert. |
|
Codage Unicode UTF-16 |
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 |
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 un 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 est utilisée pour 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