J'ai un petit problème avec MySQL : suite au problème maintenant résolu posté ici, je me retrouve avec une base de données qui code correctement les caractères accentués ("é" n'est plus représenté en base par un "é" ou autre).
Le soucis, c'est que des enregistrements qui avant ne posaient pas de problème se mettent à le faire. Mettons que la table suivante est utilisée :
CREATE TABLE `ma_table` ( `test` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '', PRIMARY KEY (`test`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE utf8_general_ci;
Je veux y insérer les valeurs "role" et "rôle", qui avant ne posaient aucun problème, puisque le "ô" de "rôle" était mal codé et ressemblait à tout sauf à un "ô", donc les deux chaines étaient considérées comme différentes. Mais maintenant, MySQL considère ces deux chaines comme équivalentes; j'ai testé les valeurs pour "COLLATE" qui me semblaient les plus logiques, mais aucune (sauf utf8_bin bien sûr, mais je veux éviter de l'utiliser pour des chaînes) ne semble considérer que "o" et "ô" n'ont pas le même rang, et donc j'obtiens chaque fois une erreur de duplication de clé.
Ce problème a-t-il une solution, ou bien est-ce que les lettres accentuées sont toujours considérées comme "de même rang" que leur équivalent non accentué en UTF8 ? (ça me semble curieux, mais bon...)