2010-09-10 6 views
0

Existe-t-il un moyen d'appliquer globalement utf8_encode? J'essaye d'obtenir la page entière pour charger correctement différentes langues sans devoir insérer utf8_encode avant chaque variable.Global utf8_encode

echo '<p>'.utf8_encode($LANG_CALL_TO_ACTION).'</p>' 
+0

ont juste toutes vos langues en utf-8 –

Répondre

1

Le fait que vous devez utiliser utf8_encode c'est souvent sans doute un symptôme d'un problème architectural.

utf8_encode est une fonction qui convertit les données codées iso-8859-1 en UTF-8.

Dans une configuration moderne, vous n'aurez plus besoin de l'utiliser: Les données entrantes seront déjà codées en UTF-8. Si ce n'est pas le cas, si les données proviennent d'une ancienne base de données ISO-8859-1 (ce qui est totalement correct), vous devriez utiliser un codage de sortie approprié au lieu de UTF-8 (c'est-à-dire ISO-8859- 1).

Il est également possible de convertir globalement les données si vraiment, vraiment nécessaire, mais pour donner des conseils sur cela, nous aurions besoin de savoir beaucoup plus plus au sujet de votre installation. C'est aussi probablement une mauvaise idée à faire.

+0

+1 Pour couvrir ce que ma réponse manquait. –

1

Vous pourriez ne pas avoir à. sert à convertir une chaîne ISO-8859-1 en une chaîne encodée en UTF8 - cela ne vous convient pas si vos données sont déjà en UTF-8 et que vous avez juste des problèmes d'affichage. Ce qui me semble vouloir dire, c'est de vous assurer que tout votre contenu est correctement affiché comme UTF-8, pour lequel vous avez juste besoin de définir l'en-tête HTTP approprié.

Ma méthode préférée pour faire est donc ce

ini_set('default_charset', 'UTF-8'); 
+0

yup, cela pourrait être la solution aussi. Il dépendra de la clarification de l'OP quelle est la question –

+0

Essayé votre code et en-tête ("type de contenu: text/html; charset = utf-8;"); Nous avons toujours du mal à afficher le turc – pmchrislee

+0

Si vous avez un contenu turc, alors 'utf_encode()' ne va certainement pas vous aider - vous ne pouvez pas exprimer le turc dans ISO-8859-1. Cela ressemble plus à des problèmes d'encodage au niveau de la base de données, ou d'où proviennent ces données. –