Sommaire

Traitement avec des chaînes de caractères

1. Encodage des caractères

Les problèmes commencent avec le traitement des caractères. Comme évoqué précédemment, l’encodage des caractères peut utiliser des formats très différents. Le type char du C/C++ encode le caractère sur un octet (donc 8 bits, soit 256 combinaisons). Cet encodage minimaliste, qui laisse, entre autres, les alphabets asiatiques, grecs et russes au banc des oubliés, est de plus en plus remplacé par le caractère étendu wchar_t qui encode chaque caractère sur deux octets (donc 16 bits, soit 65 536 combinaisons). En C/C++, il est possible de choisir le format du caractère soit définitivement par son type (char ou wchar_t), soit en utilisant la macro TCHARTCHAR avec une option de compilation. En effet, la macro TCHAR rend le type caractère adaptable. En fonction de la directive sélectionnée, chaque TCHAR est remplacé à la compilation soit par un char, soit par un wchat_t. La directive en question se règle dans la Page de propriétés du projet C/C++, onglet Général, option Jeu de caractères.

images/RI-9-03.png

En .NET, le System.Char est nativement en UNICODE, donc très proche du wchar_t du C/C++.

Ne pas confondre le char C# qui est un alias de System.Char et qui contient de l’UNICODE avec le char du C/C++ qui contient de l’ANSI.

2. Encodage des chaînes

En C/C++, une chaîne ...