Aller au contenu

Collation Mysql


Sujets conseillés

Posté

Bonjour,

J'ai un problème avec les jeux de caractères et suite à une install du serveur mysql avec les collations.

Je ne comprends pas quel jeu de caractère utilisé pour installer un jeu de caractère français par défaut que ce soit de l'ISO-8859-1 ou de l'utf-8 amélioré.

1270 - Illegal mix of collations (utf8_general_ci,IMPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation 'replace'

J'ai eu cette erreur suite à une installation dotclear ou il semble y avoir un conflit avec le jeu latin1_swedish (qui est là car un admin furieux l'a paramétré pour perfectionner son suédois - il se reconnaître ;) -)

Est ce que l'utf8_general_ci suffirait ?

Merci pour vos réponses.

Posté

L'UTF8 et l'ISO n'utilisent pas le même système d'encodage des caractères. En gros, l'un le stocke sur 1 caractère, alors que l'autre le stocke sur 2 (ou 3) caractères. L'intérèt ?

L'ISO 88591 sait exactement quel caractère tu vas lui entrer, alors que l'UTF ne le sait pas, et est donc obligé de stocker 'la norme' avec lui.

Exemple :

Pour un 'é', le ISO va stocker 'é' alors que UTF va stocker (8859-1)é, pour ne pas le confondre avec un caractère chinois ou hébreux, etc..

Quand tu récupères la table, il faut que le programme sache si c'est du UTF ou de l'ISO. Mais il faut surtout que les 2 normes ne soient pas mélangées, car il y aurait conflit. Pour cela, le mieux est de vider ta table en question, et de stocker l'un (ou l'autre).

Nico.

Posté

Pour info, latin1_swedish_ci n'est pas une "table de caractères", mais un nom de collation.

Un jeu de caractères a au moins une collation par défaut.

Pour la table iso-8559-1, la collation par défaut est ... latin1_swedish_ci

Ces tables de collation servent à la comparaison des chaînes... Elles sont apparues dans Mysql 4.1

Posté

J'ai eu le même type de désagrément, en passant mon PC a mySql 4.1.

Jusqu'au moment où j'ai compris qu'il fallait déterminer le jeu de caractères lors de la création de la base.

Depuis, je n'ai plus eu de problème.

Dan

Posté
Pour la table iso-8559-1, la collation par défaut est ... latin1_swedish_ci

Moi qui croyait que c'était un caprice de notre admin passionné .. :lol:

Bon, pour l'install de dotclear, la solution est sur leur forum à cette url :

http://www.dotclear.net/forum/viewtopic.php?id=6866

Je vais aller essayer tout çà, Mysql 4.1, ca a quand même l'air d'être un beau bordel, vivement la prochaine release :P

Merci à tous pour vos réponses.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...