Webmaster Hub: Tri alphabétique avec des caractères allemands - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Tri alphabétique avec des caractères allemands Noter : -----

#1 L'utilisateur est hors-ligne   Ndeko 

  • Groupe : Membre
  • Messages : 10
  • Inscrit(e) : 09-juillet 04

Posté 14 juillet 2004 - 22:41

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...scal.grouselle/
0

#2 L'utilisateur est hors-ligne   Dan 

  • Webmaster
  • Voir le blog
  • Voir la galerie
  • Groupe : Direction
  • Messages : 22 946
  • Inscrit(e) : 18-août 03
  • Genre:Homme
  • Localisation:St Anne, Alderney
  • Société:Webmaster Hub Ltd.

Posté 15 juillet 2004 - 10:59

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 ;)
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Si la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi. - Albert Einstein -
Infogérance de serveurs dédiés OVH
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)