Problème avec les caractères accentués

Résolu/Fermé
srato Messages postés 7 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 5 décembre 2014 - 15 avril 2014 à 16:16
srato Messages postés 7 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 5 décembre 2014 - 15 avril 2014 à 16:52
Bonjour,

Ma page est en utf-8 et ma table MySQL en latin1_swedish_ci car elle contient des noms de villes suédoises. Je voudrais écrire le texte de la DB sur ma page mais les caractères accentués suédois sont incorrects. Pourriez-vous m'aider SVP ? Voici mon script :

$select = $_POST['select'];
$select = mb_convert_encoding($select, "iso-8859-1", "utf-8");


$sql = "
SELECT * FROM $table_name
WHERE ville = \"$select\"
";


$result = @mysql_query($sql, $connection) or die("impossible");

if ($select) {
echo "<h3>Ville : ".mb_convert_encoding($select, "utf-8", "iso-8859-1")."</h3>";
}

while ($row = mysql_fetch_array($result)) {
$nom = $row['nom'];
$ville = $row['ville'];
$web1 = $row['web1'];
$web2 = $row['web2'];
$email = $row['email'];
$tel = $row['tel'];
$fax = $row['fax'];

// I convert back to utf_8
$nom = mb_convert_encoding($nom, "utf-8", "iso-8859-1");
$ville = mb_convert_encoding($ville, "utf-8", "iso-8859-1");
$web1 = mb_convert_encoding($web1, "utf-8", "iso-8859-1");
$web2 = mb_convert_encoding($web2, "utf-8", "iso-8859-1");
$email = mb_convert_encoding($email, "utf-8", "iso-8859-1");
$tel = mb_convert_encoding($tel, "utf-8", "iso-8859-1");
$fax = mb_convert_encoding($fax, "utf-8", "iso-8859-1");



echo "<div id=\"auberge\">Nom : <strong>".$nom."</strong><br>";
echo "Web : <a href=\"".$web1."\" target=\"_blank\">".$web1."</a><br>";
echo "Web 2 : <a href=\"".$web2."\" target=\"_blank\">".$web2."</a><br>";
echo "Email : <a href=\"mailto:".$email."\">".$email."</a><br>";
echo "Phone : ".$tel."<br>";
echo "Fax : ".$fax."<br>";
echo "</div>";
// end of while loop
}

// end of isset condition
}
?>

2 réponses

srato Messages postés 7 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 5 décembre 2014
Modifié par srato le 15/04/2014 à 16:39
Je viens de supprimer quelques lignes à mon script PHP et maintenant tout ce qui provient de la BD s'affiche correctement. Par contre, certaines parties du reste de ma page en français s'affiche avec de mauvais caractères à la place des caractères accentués. Voici mon script maintenant :

$select = $_POST['select'];
$select = mb_convert_encoding($select, "iso-8859-1", "utf-8");


$sql = "
SELECT * FROM $table_name
WHERE ville = \"$select\"
";


$result = @mysql_query($sql, $connection) or die("Requête impossible");

if ($select) {
echo "<h3>Voici ce que nous avons trouvé pour la ville de : ".$select."</h3>";
}

while ($row = mysql_fetch_array($result)) {
$nom = $row['nom'];
$ville = $row['ville'];
$web1 = $row['web1'];
$web2 = $row['web2'];
$email = $row['email'];
$tel = $row['tel'];
$fax = $row['fax'];




echo "<div id=\"auberge\">Nom de l'auberge : <strong>".$nom."</strong><br>";
echo "Site Web résumant les infos : <a href=\"".$web1."\" target=\"_blank\">".$web1."</a><br>";
echo "Site Web personnel de l'auberge : <a href=\"".$web2."\" target=\"_blank\">".$web2."</a><br>";
echo "Email : <a href=\"mailto:".$email."\">".$email."</a><br>";
echo "Téléphone : ".$tel."<br>";
echo "Fax : ".$fax."<br>";
echo "</div>";
// end of while loop
}

// end of isset condition
}
?>
0
srato Messages postés 7 Date d'inscription jeudi 3 avril 2014 Statut Membre Dernière intervention 5 décembre 2014
15 avril 2014 à 16:52
Ok problème résolu en rajoutant :
<?php
header('Content-Type: text/html; charset=utf8');
0