2010-11-12 6 views
8

J'essaie de sortir du XML en utilisant PHP, et quand je regarde la source de la page dans Firefox, tout semble bien. Cependant, la page elle-même ne s'affiche pas correctement.Codage UTF-8 xml en PHP

Dans Firefox, il dit généralement ce en haut de la page quand il est correctement formaté XML montrant:

This XML file does not appear to have any style information associated with it. The document tree is shown below. 

..et il montre l'arbre xml.

Cependant, je viens d'obtenir les caractères dans les balises xml, et aucun arbre. La seule différence que je peux voir est que ma page est encodée en tant que norme ISO-8859-1 de l'Ouest et que le code XML correctement affiché est encodé en Unicode UTF-8. Alors, comment est-ce que je sortirais ma page comme Unicode UTF8?

J'ai essayé cela, mais il ne fait aucune différence:

echo utf8_encode($xmlstring); 
+0

Montrez-nous la source. At-il l'en-tête ? – stillstanding

Répondre

9

Assurez-vous d'envoyer le XML avec un type de contenu approprié et le codage, par exemple

<?php header("Content-Type: application/xml; charset=utf-8"); ?> 

Vérifiez également que le prologue XML contient le codage approprié, par ex. Le message concernant les informations de style fait référence à une instruction de traitement manquante, par ex.

<?xml-stylesheet type="text/xsl" href="someting"?> 

qui indiquerait au navigateur comment styler/formater la sortie. Ce n'est pas forcément nécessaire si vous voulez juste afficher le XML brut.

+0

Merci. Je peux aussi simplement ajouter un en-tête ("Content-Type: text/xml;"); et il semble prendre le codage UTF-8 par défaut. – cannyboy

+0

Meilleure réponse à cette question de @andyk http://stackoverflow.com/a/486786/757850 –