Aller au contenu

Tri alphabétique avec des caractères allemands


Sujets conseillés

Posté

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/

Posté

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

Veuillez vous connecter pour commenter

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



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