2011-09-14 4 views
2

J'écris une application web en utilisant php.
Le fichier principal (index.php) contient des caractères hébreux et lorsque je le charge, ils apparaissent comme "?".
L'encodage pour les fichiers PHP et HTML est UTF-8. Lorsque je change l'extension index.php en HTML, les caractères hébreux sont affichés correctement. J'ai essayé de mettre cette ligne dans le code:Codage PHP Hébreu

<?php 
header('Content-type: text/html; charset=UTF-8') 
?> 

mais il n'a pas aidé.

Je veux toujours utiliser le fichier comme PHP. Comment puis-je faire apparaître les caractères hébreux?

+0

réglez votre encodage IDE sur UTF-8! ;) – JellyBelly

+0

@JellyBelly: J'utilise Eclipse et l'encodage est UTF-8. –

+0

Vous pourriez essayer de charger la version de PHP de la page dans votre navigateur, de sorte qu'il affiche '?' puis en passant par certains encodages de caractères communs dans votre navigateur. Dans Chrome, ceux-ci se trouvent dans le menu Affichage. Essayez l'ISO-8859-1, l'UTF-8, l'ISO-8859-8 etc. pour voir si l'un d'entre eux donne l'impression d'être correct. Ensuite, dépannez à partir de là. – Jonathan

Répondre

3

choses à l'étape par:

  1. Assurez-vous que le fichier est codé correctement (par exemple avec isutf8 ou similaire).
  2. D'où vient le texte? Si c'est à partir d'une base de données, le texte est-il stocké en UTF-8? La connexion à la base de données est-elle définie sur UTF-8 avant toute requête?
  3. Assurez-vous que l'en-tête est correctement envoyée (en utilisant Firebug, ou des outils de développement Chrome ou Opera Dragonfly)
  4. Vérifier un élément charset meta dans la tête. (Toutes ces mesures doivent être en UTF-8)
  5. Assurez-vous que le navigateur fonctionne correctement (clic droit sur la page, « Info page » ou similaire dans la plupart des navigateurs)

Demandez si vous avez besoin aider avec l'un de ceux-ci.

+1

Problème résolu. J'ai ouvert le fichier PHP dans notepad ++, l'ai codé comme "UTF 8 sans nomenclature" et cela a fonctionné. Maintenant, si quelqu'un peut expliquer ce qui est "sans nomenclature" ce serait génial. –

+0

http://en.wikipedia.org/wiki/Byte_order_mark –

+0

La nomenclature est redondante en UTF-8 (car les caractères UTF-8 multi-octets ont les bits de leur codage mappés sur plusieurs octets d'une manière très spécifique, non-endian). Il ne devrait pas devoir être employé, et est principalement une chose d'héritage maintenant. Je peux facilement croire que cela causerait des problèmes pour ajouter une nomenclature à UTF-8 pour certains navigateurs. Bien fait pour le résoudre. Je suppose que vous utilisez Windows, car je ne peux pas penser à une autre plate-forme qui serait livrée avec un éditeur de texte ajoutant des nomenclatures aux fichiers UTF-8. –