|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 24 ![]() |
Bonjour,
Note : j'ai bien lu ce post, mais n'y ai pas trouvé d'explication. Je précise que j'ai par contre la même version de MySQL, que j'utilise également Wamp. Que l'ordre de tri est erroné dans phpMyAdmin, dans MySQL Query et via PHP lorsque j'affiche le résultat dans une page web. Sous MySQL 5.0.27, j'ai une table dont le charset est UTF8 et la collation utf8_general_ci. Dans ma table, j'ai les données suivantes dans une colonne "nom" : Ces données sont bien en UTF-8. Dans PHPMyADMIN, elles apparaissent ainsi : Mon problème est le suivant : si j'exécute la requête suivante : SELECT nom FROM matable ORDER BY nom J'obtiens : En effet, le é étant encodé en UTF-8 en é, le mot été apparait après ain. Tout se passe donc comme si le tri se faisait en latin, et non en UTF-8. J'aimerais évidemment que le résultat de la requête retourne : J'ai essayé de forcer la collation directement dans la requête, mais ça n'a rien changé. Je précise que le charset utf8 et la colation sont indiqués au niveau de la colonne nom de ma table, ainsi que par défaut dans ma base. D'ou peut bien provenir le problème ? Merci par avance, Dimitri. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Il y a été enregistré comment cette chaine été ? Même si tu le force en sortie ça va rien changé. Cela dépend avec quel encodage il a été enregistré.
Tente un truc dans ce genre là. Code :
INSERT INTO maTable (monChamp) VALUE (_utf8'mavaleur');
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : janvier 2004 Messages : 24 ![]() |
Bonjour, et merci de t'intéresser à mon problème, qui me prend la tête depuis hier soir...
Le contenu de ma table avait été effectué via un import sql depuis phpMyAdmin, le fichier sql étant encodé en utf-8. J'ai exécuté la requête que tu m'a indiquée, en insérant été. Et bien le problème, c'est que été ne semble pas avoir été inséré comme étant de l'UTF-8, puisque dans phpMyAdmin, il apparait comme été (alors qu'il devrait apparaitre comme été, non ? J'ai exécuté la requête dans MySQL Query Browser, et c'est la même chose. Du coup, quand dans un simple script php je veux extraire et afficher en utf-8 les données de ma table, j'obtiens ?t? au lieu de été... As-tu une explication ? |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Citation:
Pour plus de renseignement regarde cette article. http://antoun.developpez.com/mysql5/jeux-collations/
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com