[RESOLU] mauvais affichage des caractères spéciaux bien que tout en u

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 : [RESOLU] mauvais affichage des caractères spéciaux bien que tout en u

Re: mauvais affichage des caractères spéciaux bien que tout

par laurentsch » 24 nov. 2014, 12:31

Génial ; merci de la réponse !

Re: mauvais affichage des caractères spéciaux bien que tout

par sadeq » 24 nov. 2014, 11:35

Bonjour,

Quand les données sont codées au format utf8 dans la base de données, il faut ouvrir une connexion vers celle-ci dans PHP en exigeant ce format utf8.
Car pour MySQL, il faut utiliser la commande SET NAMES UTF8 pour communiquer avec une base de données codée en utf8.
Pour ce faire voici comment:
# ici la base de données TEST est codé en UTF8
$connexion = mysql_connect('localhost','root','') or die ("Erreur de connexion au serveur");
mysql_select_db('TEST', $connexion) or die ("Erreur d'ouverture de la base de données TEST");
# c'est pourquoi il faut ouvrir une connexion codée en UTF8
mysql_query("SET NAMES UTF8");
Ceci dit, toutes les pages HTML qui afficheront ces données UTF8 doivent être formatées pour ça en déclarant le codage UTF8 dans l’entête HTML.
Pour ce faire voici comment:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr" xml:lang="fr">
   <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
Voilà.

mauvais affichage des caractères spéciaux bien que tout en u

par laurentsch » 24 nov. 2014, 09:34

Bonjour,

l'affichage des caractères spéciaux lus d'une bdd MySQL :

Code : Tout sélectionner

         for ($i=0;$i<$num_rows;$i++) {              $row = mysql_fetch_array($result);               $t = $row["categorie"];     echo "<option>";echo $t;echo "</option>"; }
est incorrect bien que j'ai passé les champs de cette table en inter-classement utf8-bin (essayé aussi utf8-general-ci). Que faut-il faire ?