Bonjour
J'ai dans une base de données des données mal encodé (voir id 72 et 85) :
Y aurait il une fonction qui permette de convertir ces caractères mal encodé en caractère lisible? J'ai essayé utf8_decode() mais ça ne fonctionne pas.
Merci
Bonjour
J'ai dans une base de données des données mal encodé (voir id 72 et 85) :
Y aurait il une fonction qui permette de convertir ces caractères mal encodé en caractère lisible? J'ai essayé utf8_decode() mais ça ne fonctionne pas.
Merci
En fait l'image ne correspond pas à ce que j'avais vraiment:
Voici les caractères que j'obtiens réellement:
é
´
à¶
etc ...
J'ai fait une fonction qui permet de convertir mais si quelqu'un a une solution plus automatique, je suis preneur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 function pop($title) { $title = str_replace("é","é",$title); $title = str_replace("ô","'",$title); $title = str_replace("ïla","",$title); $title = str_replace("à¶","ö",$title); $title = str_replace("ê","ê",$title); $title = str_replace("ç","ç",$title); $title = str_replace("ê","è",$title); $title = str_replace("â","â",$title); $title = str_replace("è","è",$title); $title = str_replace("ÃÂ","à",$title); $title = str_replace("à±","ñ",$title); $title = str_replace("à¹","ù",$title); $title = str_replace("à¼","ü",$title); $title = str_replace("à¡","á",$title); $title = str_replace("à£o","ã",$title); $title = str_replace("à³","ó",$title); $title = str_replace("à«","ë",$title); $title = str_replace("à´","ô",$title); $title = str_replace("ÃÅ","Ü",$title); $title = str_replace("à¤","ä",$title); $title = str_replace("Ãâ°","É",$title); $title = str_replace("Ãâ","Ä",$title); $title = str_replace("à¸","ä",$title); $title = str_replace("à¯","ï",$title); return $title }
Avant de faire quoi que ce soit, tu devrais vérifier que l'encodage de tes tables soit bon.
Si tu utilise MySQL, il te faut être en latin1_swedish_ci ce qui signifie aussi ISO-8859-1.
Attention un changement d'encodage brutal risque d'avoir des effets surprenant, je te conseil donc de faire une copy de tes tables avant![]()
Bonjour bonjour
Oui ma base de donnée est bien une mysql et a bien le bon encodage.
Le problème venait de PHP. Dans le fichier php.ini, le parametre qui disait à PHP d'etre en iso-8859-15 était commenté (default_charset = "iso-8859-15").
Pour les nouvelles insertions en base, le problème est réglé.
Maintenant il faut corriger ce qu'il y a deja en base.
En fait j'ai lu que quand il y avait des caractères comme ça é , le ƒÂ siginifie qu'il y a eu un double encodage.
Il faut donc passer une requete de ce style :
et on obtient donc des caractères comme é qui sont décodable avec la fonction utf8_decode() .
Code : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE nom_table SET `nom_colonne` = REPLACE(nom_colonne,'Â','');
Mais j'ai encore des caractères comme À“ ou Ø (etc) et je ne sais pas ce que c'est.
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager