Le utf8_bin
le classement est utilisé pour comparer les chaînes dans un mode sensible à la casse, par la valeur binaire de chaque caractère. Cela peut dépendre de vos paramètres locaux de votre base de données, quel jeu de caractères ou classement est utilisé. Par exemple pour une base de données MySQL, vous pouvez vérifier le mode de classement de votre base de données MySQL par la commande MySQL suivante
mysql> SELECT COLLATION(VERSION());
+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci |
+----------------------+
..ou en utilisant celui-ci..
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
Dans votre cas, l'une de ces valeurs doit être utf8_bin
. Les valeurs générales de la base de données peuvent être définies dans votre fichier de configuration, probablement my.cnf
pour MySQL. Afin de créer une table MySQL avec un moteur, un charset ou un classement spécifique, vous pouvez utiliser les options de migration :
create_table :users,
:options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci'
...
Selon la documentation, le jeu de caractères et collation de table sont des extensions MySQL, il n'y a rien de tel dans le SQL standard.