Version complète: sur le forum Webmaster Hub : Tri alphabétique avec des caractères allemands
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Ndeko
J'ai constaté, dans un tri alphabétique sur des mots allemands, que mysql trie les entrées en plaçant ö après o, ä après a, etc.

Exemple (fautif) :
  • modern
  • Motor
  • mögen
Au lieu de (exact) :
  • modern
  • mögen
  • Motor
Dans le manuel mysql, j'ai lu ceci à ce propos :

CITATION
4.6.1.1 Jeu de caractères allemand

Pour obtenir l'ordre de tri Allemand, vous devez démarrer mysqld avec --default-character-set=latin1_de. Cela vous donnera les caractéristiques différentes.

Lors du tri et de la comparaison des chaînes, les remplacements suivants sont faits dans la chaîne avant d'effectuer la comparaison :

ä  ->  ae
ö  ->  oe
ü  ->  ue
ß  ->  ss


Je veux bien..., mais qui pourrait m'expliquer comment on "démarre mysqld avec --default-character-set=latin1_de" ? Et est-ce que le choix de ce jeu de caractères peut générer d'autres problèmes pour des mots français, cette fois-ci (je pense aux voyelles accentuées).

Merci !

--
Pascal Grouselle
http://perso.wanadoo.fr/pascal.grouselle/
Dan
Salut Ndeko,

Pour éviter de modifier les paramètres de démarrage de Php, tu as la possibilié d'utiliser la fonction setlocale() dans tes scripts.

C'est beaucoup plus simple à mettre en oeuvre.

Le code suivant:
CODE
<?php
$loc_de = setlocale (LC_ALL, 'de_DE_AT_euro', 'de_DE', 'de', 'ge');
echo "Le paramètre préféré pour l'allemand sur ce système est: '$loc_de'";
?>
déterminera le paramètre le plus approprié pour ton serveur (et ton install de Php.

Par exemple , sur le serveur du Hub, le paramètre préféré est 'de_DE_AT_euro', alors que sur une install locale j'obtiens 'German_Germany.1252'

Il te suffira alors d'utiliser setlocale() avec ce paramètre dans tes sources, par exemple:
CODE
setlocale(LC_ALL, 'de_DE_AT_euro');


B) Dan

PS: remplaces le _AT_ dans le code ci-dessus par le symbole arobase: @ ... j'ai mis un filtre en place pour éviter aux membres de se faire pourrir leur boite email, mais cela empêche l'affichage des @ s'ils semblent appartenir à une adresse email wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.