Un jeu de caractères est un sous-ensemble de tous les glyphes écrits. Un codage de caractères spécifie comment ces caractères sont mappés en valeurs numériques. Certains encodages de caractères, comme UTF-8 et UTF-16, peuvent encoder n'importe quel caractère dans le jeu de caractères universel. D'autres, comme US-ASCII ou ISO-8859-1, ne peuvent coder qu'un petit sous-ensemble, puisqu'ils utilisent respectivement 7 et 8 bits par caractère. Du fait que de nombreuses normes spécifient à la fois un jeu de caractères et un codage de caractères, le terme "jeu de caractères" est souvent remplacé par "codage de caractères". Un classement comprend des règles qui spécifient comment les caractères peuvent être comparés pour le tri. Les règles de classement peuvent être spécifiques aux paramètres régionaux: le bon ordre de deux caractères varie d'une langue à l'autre.
Le choix d'un jeu de caractères et le classement dépendent de l'internationalisation de votre application. Si non, quelle région ciblez-vous?
Afin de choisir le jeu de caractères que vous voulez soutenir, vous devez considérer votre application. Si vous stockez une entrée fournie par l'utilisateur, il peut être difficile de prévoir tous les paramètres régionaux dans lesquels votre logiciel sera éventuellement utilisé. Pour les supporter tous, il vaudrait mieux soutenir UCS (Unicode) dès le départ. Cependant, il y a un coût à cela; de nombreux caractères d'Europe occidentale nécessiteront désormais deux octets de stockage par caractère au lieu d'un.
Le choix du classement correct peut améliorer les performances si votre base de données utilise le classement pour créer un index et utilise ultérieurement cet index pour fournir des résultats triés. Toutefois, étant donné que les règles de classement sont souvent spécifiques aux paramètres régionaux, cet index sera inutile si vous devez trier les résultats en fonction des règles d'un autre environnement local.
Il est important de noter qu'il peut y avoir plusieurs classements différents pour un jeu de caractères unique. Celui qui est "juste" dépend de la sémantique du texte qui est normalement déterminée par la langue dans laquelle il est écrit. – Phil