2010-12-14 99 views
5

J'ai des données avec des caractères spéciaux (accent grave français). Lorsque je sélectionne avec le script php et la sortie (impression), il semble bien. Quand je passe à Smarty, les personnages sont changés. Mon html a le paramètre suivant: meta http-equiv = "content-type" content = "texte/html; charset = utf-8" Vous ne savez pas ce qui manque ou est-il incorrect?Smarty: les caractères spéciaux sont modifiés non désirés- utf8

gr, Patrick

+0

Dans le navigateur, Affichage -> Codage de caractères, reconnaît-il le codage utf-8? – Catalin

+0

Peut-être que votre serveur envoie un en-tête de type de contenu. Les en-têtes HTTP ont la priorité sur les métabalises HTML. – rik

+0

Lorsque vous ouvrez le fichier smarty avec Notepad ++, que voyez-vous en bas à droite? Vous devriez voir "ANSI comme UTF-8". Au fait, est-ce que vous «échappez»? Dans ce cas, vous devez lui fournir le second paramètre: '{$ var | escape: 'html': 'UTF-8'}' selon http://www.smarty.net/docsv2/fr/language.modifier .escape.tpl –

Répondre

0

Mettre cela au début du fichier vôtre php et vérifiez:

// tête utf-8

("Pragma: no-cache"); header ('Type de contenu: text/html; charset = utf-8');

// mbstring codage UTF8 (en option)

mb_detect_order (array ('UTF8', 'ASCII')); mb_internal_encoding ('UTF-8'); mb_http_output ('UTF-8'); mb_regex_encoding ('UTF-8');