271 votes

Ce ne jeu de caractères et collation veux dire exactement?

Je peux lire le mysql documetations et ils sont assez claires. Mais, comment décide-t-on le jeu de caractères à utiliser? Sur ce stuff n'classement ont un effet?

Je vais lui demander une explication des deux et comment les choisir.

454voto

Dan Esparza Points 11826

À partir de l'article ici (pour plus de lecture):

Un jeu de caractères est un ensemble de symboles et codages. Un classement est un ensemble de règles pour la comparaison des caractères dans un jeu de caractères. Faisons en sorte que l' distinction claire avec un exemple de un personnage imaginaire ensemble.

Supposons que nous disposons d'un alphabet avec quatre lettres: 'A', 'B', 'a', 'b'. Nous donner à chaque lettre un nombre: 'A' = 0, 'B' = 1, 'a' = 2, c = 3. La lettre 'A' est un symbole, le nombre 0 est la l'encodage de "A", et la combinaison de tous les quatre lettres et de leurs les codages est un jeu de caractères.

Maintenant, supposons que nous voulons comparer deux valeurs de chaîne, 'A' et 'B'. L' la plus simple façon de le faire est de regarder les codages: 0 pour " A " et 1 pour 'B'. Parce que 0 est inférieur à 1, on dit "A" est inférieur à "B". Maintenant, ce que nous avons vient de le faire, c'est d'appliquer un classement de notre jeu de caractères. Le classement est un ensemble de règles (une seule règle dans ce cas): "comparer les codages." Nous appelons cette la plus simple possible des classements d'un classement binaire.

Mais que faire si nous voulons dire que l' les minuscules et les majuscules sont équivalent? Nous aurions alors à moins de deux règles: (1) traiter de la minuscules, les lettres 'a' et 'b' pour équivalent à 'A' et 'B'; (2) puis comparer les codages. Nous appelons cela un classement de casse. C'est un peu plus complexe qu'un binaire de classement.

Dans la vraie vie, la plupart des jeux de caractères de nombreux personnages: pas seulement 'A' et 'B' mais l'ensemble des alphabets, parfois plusieurs alphabets ou de l'est de l'écriture les systèmes avec des milliers de caractères, avec de nombreux symboles spéciaux et les signes de ponctuation. Aussi dans la vraie vie, la plupart des classements ont de nombreuses règles: pas juste compte de la casse, mais aussi l'accent de l'insensibilité (un "accent" est un marque attachée à un personnage comme dans Allemand 'ö') et de plusieurs caractères mappages (comme la règle de la 'ö' = 'OE' dans l'un des deux allemands les classements).

180voto

mat Points 5365

Un codage de caractères est une façon d'encoder les caractères de sorte qu'ils s'intègrent dans la mémoire. C'est, si le jeu de caractères ISO-8859-15, le symbole de l'euro sera encodé comme 0xA4, et en UTF-8, il sera 0xe282ac.

Le classement est à comparer des personnages, en latin9, il y a des lettres e é è ê f, si triés en fonction de leur représentation binaire, ça va aller "e f é ê è", mais si le classement est bon, vous l'aurez dans l'ordre que vous pensé qu'ils seraient.

20voto

erickson Points 127945

Un jeu de caractères est un sous-ensemble de tous les écrits de glyphes. Un codage de caractères spécifie la façon dont ces personnages sont mappés à des valeurs numériques. Certains codages de caractères, comme UTF-8 et UTF-16, permet d'encoder n'importe quel caractère dans le Jeu de Caractères Universel. D'autres, comme l'US-ASCII ou ISO-8859-1 ne peut encoder un petit sous-ensemble, car ils utilisent les 7 et 8 bits par caractère, respectivement. Parce que de nombreuses normes de spécifier un jeu de caractères et codage de caractère, le terme "jeu de caractères" est souvent remplacé librement pour "encodage des caractères".

Un classement comprend les règles qui spécifient la façon dont les caractères peuvent être comparées à des fins de tri. Les classements de règles peuvent être des paramètres régionaux spécifiques: de l'ordre de deux caractères varie selon la langue.

Le choix d'un jeu de caractères et la collation se résume à savoir si votre demande est internationalisé ou pas. Si non, quels sont les paramètres régionaux ciblez-vous?

Afin de choisir quel jeu de caractères que vous souhaitez prendre en charge, vous devez tenir compte de votre demande. Si vous stockez d'entrée fourni par l'utilisateur, il peut être difficile de prévoir tous les lieux dans lesquels votre logiciel sera éventuellement utilisé. À l'appui de tous, il peut être préférable à l'appui de l'UCS (Unicode) dès le départ. Cependant, il y a un coût à cela; beaucoup de l'europe occidentale personnages vont maintenant besoin de deux octets par caractère au lieu d'un.

Choisir le bon classement peut aider à la performance si votre base de données utilise le classement pour créer un index, puis utilise cet indice pour fournir des résultats triés. Cependant, puisque les règles de classement sont souvent des paramètres régionaux spécifiques, cet indice sera inutile si vous avez besoin de trier les résultats selon les règles d'un autre jeu de paramètres régionaux.

6voto

skqr Points 131

Dan Esparza la réponse n'est pas à partir de l'article lié, mais à partir de MySQL manuel de l'en fin de compte.

http://dev.mysql.com/doc/refman/5.0/en/charset-general.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: