Drôle d'ordre alphabétique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Drôle d'ordre alphabétique

par Hubert Roksor » 14 déc. 2006, 19:26

Il n'y a pas de problème là-dessus.
Vérifie également que tu n'as pas de balise <meta> qui dirait le contraire.
Le my.ini d'EasyPHP ne dit rien de ça
:arrow: ajoute-les.
Ça n'arrange rien: pire, ça affiche les caractères bizarres d'un UTF-8 mal décodé.
Quoi comme caractères bizarres ? si ce sont des ou des ? alors le contenu du champs n'est probablement pas de l'UTF-8.

par Victor BRITO » 14 déc. 2006, 18:49

Firefox (sous Windows) me dit que la page est en UTF-8.

par Ajoloca » 14 déc. 2006, 18:39

Re,
Les tests que j'ai fait sont sous Linux et FF.

Dans ton navigateur tu as quoi comme encodage des cractères une fois ta page affichée ?

par Victor BRITO » 14 déc. 2006, 18:36

Assure-toi que tu reçois bien de l'UTF-8 (toutes tes pages doivent avoir comme en-tête Content-type: text/html; charset=utf-8)
Il n'y a pas de problème là-dessus.
et que ton serveur est correctement configuré. Par exemple, mon my.ini comporte ceci:

Code : Tout sélectionner

[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8
Le my.ini d'EasyPHP ne dit rien de ça. :oops: (Qu'en est-il chez WAMP?)
Au pire, exécute cette requête en début de script

Code : Tout sélectionner

SET NAMES 'utf8' COLLATE 'utf8_general_ci'
Ça n'arrange rien: pire, ça affiche les caractères bizarres d'un UTF-8 mal décodé.

par Ajoloca » 14 déc. 2006, 18:34

Bonjour,

J'obtiens le même résultat que Hubert Roksor avec la collation utf8_general_ci ou avec utf8_general_cs

par Hubert Roksor » 14 déc. 2006, 18:09

Chez moi, utf8_general_ci me donne
  • Âge
  • Aperçu
  • Champ libre
  • Échelle numérique
Il y a donc un problème ailleurs dans ton script, probablement au moment de l'insertion. Assure-toi que tu reçois bien de l'UTF-8 (toutes tes pages doivent avoir comme en-tête Content-type: text/html; charset=utf-8) et que ton serveur est correctement configuré. Par exemple, mon my.ini comporte ceci:

Code : Tout sélectionner

[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8
Au pire, exécute cette requête en début de script

Code : Tout sélectionner

SET NAMES 'utf8' COLLATE 'utf8_general_ci'

par Victor BRITO » 14 déc. 2006, 18:03

Salut!

En utf8_general_ci, le résultat est de ce genre:

-Aperçu
-Âge
-Échelle numérique
-Champ libre

En utf8_bin:
-Aperçu
-Champ libre
-Âge
-Échelle numérique

Dans toutes les autres collations:

-Âge
-Échelle numérique
-Aperçu
-Champ libre

Pas de quoi en sortir satisfait. :?

Re: Drôle d'ordre alphabétique

par Hubert Roksor » 14 déc. 2006, 17:27

Quelques remarques importantes : premièrement, É ou Ä ne sont pas "spéciaux", ce sont des lettres comme les autres (et c'est d'ailleurs pour cela que tu t'attends à les voir quelque part avec les E et A). D'ailleurs, ي et д aussi sont des lettres.

Ensuite, il faut savoir qu'il n'existe pas de classement "naturel". Selon les pays, certains caractères se retrouvent classés différemment. Pire, dans certains pays il existe des différences entre le classement du dictionnaire et celui du bottin. Tout ça pour dire qu'il faut faire attention à choisir la bonne collation pour le champs en question. Essaie utf8_general_ci, sinon essaie utf8_unicode_ci et rapporte-nous le résultat ;)

Drôle d'ordre alphabétique

par Victor BRITO » 14 déc. 2006, 17:07

Salut à tous!

Dans une requête, j'utilise un ORDER BY.

Or, le résultat trie le champ concerné par la commande ORDER BY dans un drôle d'ordre alphabétique, puisque les caractères spéciaux (comme  ou É) passent avant la lettre A. :shock: Pour info, la base de données est en UTF-8.

Y a-t-il moyen d'ordonner selon l'ordre alphabétique naturel (É noyé dans E et non placé avant A)?