Aller au contenu

Tri alphabétique avec des caractères allemands


Ndeko

Sujets conseillés

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 :

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/

Lien vers le commentaire
Partager sur d’autres sites

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:

<?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:

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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