J'ai exécuté le code "detect encoding" après mon changement de collation dans phpmyadmin et il apparaît maintenant comme Latin_1.
mais voici ce que j'ai découvert en observant une autre anomalie de données dans mon application et comment j'y ai remédié :
Je viens d'importer un tableau qui a un encodage mixte (avec des points d'interrogation en forme de diamant dans certaines lignes, et tous étaient dans la même colonne) donc voici mon code de correction. J'ai utilisé le processus utf8_decode qui prend le placeholder indéfini et assigne un point d'interrogation simple à la place du "diamond question mark" puis j'ai utilisé str_replace pour remplacer le point d'interrogation par un espace entre guillemets. Voici le code [code]
include 'dbconnectfile.php';
//// the variable $db comes from my db connect file
/// inx is my auto increment column
/// broke_column is the column I need to fix
$qwy = "select inx,broke_column from Table ";
$res = $db->query($qwy);
while ($data = $res->fetch_row()) {
for ($m=0; $m<$res->field_count; $m++) {
if ($m==0){
$id=0;
$id=$data[$m];
echo $id;
}else if ($m==1){
$fix=0;
$fix=$data[$m];
$fix = utf8_decode($fix);
$fixx =str_replace("?"," ",$fix);
echo $fixx;
////I echoed the data to the screen because I like to see something as I execute it :)
}
}
$insert= "UPDATE Table SET broke_column='".$fixx."' where inx='".$id."'";
$insresult= $db->query($insert);
echo"<br>";
}
?>