2010-11-21 19 views
0

Je construis un site web multilingue qui utilise PHP pour charger des fichiers de langue. Les paragraphes du fichier de langue sont définis dans les constantes define(). Après l'ouverture de la page dans le navigateur, je reçois un tas de caractères comme "?". Dans le balisage, j'ai codage mis à utf-8. Qu'est-ce qui peut être fait pour le faire fonctionner autre que de remplacer tous les caractères inconnus avec des entités de caractères html?Codage Charcter et PHP

+0

Il y a encore une chose à signaler. Les fichiers de langue sont inclus dans le script avec la fonction include(). Si je déclare les variables de langue dans le script, les caractères s'affichent correctement. –

Répondre

1
  1. Assurez-vous des fichiers de langue sont UTF8,
  2. assurez-vous que vos fichiers HTML et le modèle sont UTF8,
  3. assurez-vous que vous ajoutez la balise suivante à votre page

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

    tant

que vos données sont UTF8, les fichiers de modèle et html ar e utf8 et vous spécifiez explicitement que la page html est utf8, cela devrait fonctionner.

EDIT: la chose intégration de code est un peu aujourd'hui cassé ... il faut insérer un espace à la balise opening.weird

+0

Je ne connais pas grand-chose au codage de caractères ... mes variables ressemblent à ceci: define ('COMM_NAV_ABOUT', 'Σχετικά με εμάς'); Cela sortira comme "?????????????" –

+0

assurez-vous que votre fichier est enregistré en tant que utf8. – Ben

+0

Merci. Mon éditeur php principal n'a pas la possibilité de changer le codage des caractères. J'ai ouvert le fichier dans le bloc-note ++, l'ai enregistré comme utf-8 et Voila! Merci à tous! –

3
tête

('Content-Type: text/html; charset = UTF-8')

utilisez cette ligne sur le haut de votre code PHP pour envoyer l'en-tête; aide également à la validation des pages dynamiques pour se débarrasser de l'avertissement utf.

+0

J'ai essayé ça, ça n'a pas aidé –