Php : problème pour convertir les accents.

Fermé
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 - 30 oct. 2011 à 17:16
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 - 31 oct. 2011 à 16:14
Bonjour,

mes caractères sont en utf-8, et ne proviennent pas de base de données , par exemple :

<?php

$string = "éàù";

/*On détecte l'encodage :*/
echo mb_detect_encoding($riri); //Affiche UTF-8.

/*On convertit les accents :*/
echo htmlentities($string,EN_QUOTES,"UTF-8",true);

/*Affiche éàù au lieu de &eacute&agrave&ugrave*/


?>


Donc méme avec htmlentities, mes caractères ne sont pas convertis (meme quand je regarde le code source du résultat).

Une idée ?

Merci d'avance, cordialement.


A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 30/10/2011 à 18:22
un exemple de solution:

$tabl_conv = array("à"=>"& agrave;","â"=>"& acirc;","é"=>"& eacute;","è"=>"& egrave;","ê"=>"& ecirc;","î"=>"& icirc;","ï"=>"& iuml;","ö"=>"& ouml;","ô"=>"& ocirc;","ù"=>"& ugrave;");
  ////ATTENTION suprime l'espace entre & et la suite du codage html du caractère accentué
//j'ai été obligé de le mettre sinon on ne voyait rien du codage html

if($_POST[temp1] == "Poste"){ 
 $saisie=$_POST[nom]; 
  foreach($tabl_conv as $cle=>$value){ 
   $saisie=ereg_replace($cle,$value,$saisie);// ok fonctionne on voit les caract codés en html dans la boite d'alert JS 
  }
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
31 oct. 2011 à 16:14
Bonjour,

Tu n'as pas à convertir les accents.

ton fichier (html ou php) doit etre encodé en utf8

dans ton header, ton charset doit être en utf8 :

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >


si tu as des doutes sur le charset du serveur, tu peux créer un fichier .htaccess où tu ajoutes cette ligne :

AddDefaultCharset	UTF-8


si tu as une base de données, mettre toute ta base en interclassement
utf8_unicode_ci


et après la connexion à ta connexion mysql, tu ajoutes
mysql_query('SET NAMES utf8');
0