encodage sur addMeta ('keywords")
Bonjour,
je cherche à générer des meta keywords à partir d'un champ de ma base.*
Si je met une valeur en dur
par exemple
Code:
1 2
| $kw = 'toto';
$this->context->getResponse()->addMeta('keywords', " $kw . , ".sfConfig::get('app_general_keywords')); |
ça marche nickel
Code:
1 2
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content=" TOTOTO . , " /> |
par contre si j'utilise une valeur issue de la base
Code:
1 2 3 4 5
|
$kw = $un->getcustom_keyswords();
$sEncodage = mb_detect_encoding($kw );
$kw = mb_convert_encoding ( $kw , 'ASCII' ,$sEncodage );
$this->context->getResponse()->addMeta('keywords', " $kw . , ".sfConfig::get('app_general_keywords')); |
ça n'affiche rien
ça génère ça
Code:
1 2
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content=" . , " /> |
je soupconne un problème d'encodage,
j'ai essayé tous les conversion possible sans succés.
Je maitrise pas bien les questions d'encodages de caractère. Mais je trouve ça vraiment mystérieux.
Quelqu'un pourrait il m'aider à lever ce mystere ...?
PierHaut
Parce que a priori c'est justement déjà codé en utf8
Passons sur mon orthographe déplorable mais qui retourne la bonne valeur.
Code:
1 2 3 4 5 6 7
| $kw = $un->getcustom_keyswords();
$sEncodage = mb_detect_encoding($kw );
echo "PAS DECODE $kw $sEncodage <br>";
$kw = mb_convert_encoding ( $kw , 'UTF-8' ,$sEncodage );
$sEncodage = mb_detect_encoding($kw );
echo "EN UTF8 $kw $sEncodage <br>"; |
affiche
Code:
1 2
| PAS DECODE key word actu ASCII
EN UTF8 key word actu ASCII |
manifestement c'est pas converti en utf8 non ?
PB sur la fonction mb_convert_encoding, ou sur ma chaine ??
Pi