2010-11-12 19 views
8

Estoy tratando de generar XML utilizando PHP, y cuando miro la fuente de la página en Firefox todo parece estar bien. Sin embargo, la página en sí no se muestra correctamente.codificación UTF-8 xml en PHP

En Firefox, por lo general dice que esta en la parte superior de la página cuando se está mostrando XML con formato correcto:

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

..y entonces se muestra el árbol XML.

Sin embargo, acabo de obtener los caracteres dentro de las etiquetas xml, y ningún árbol.

La única diferencia que puedo ver es que mi página está codificada como Western ISO-8859-1 y que el XML que se muestra correctamente está codificado como Unicode UTF-8. Entonces, ¿cómo sacaría mi página como Unicode UTF8?

He intentado esto pero no hace ninguna diferencia:

echo utf8_encode($xmlstring); 
+0

Muéstranos la fuente. ¿Tiene el encabezado ? – stillstanding

Respuesta

9

Asegúrese de enviar el XML con un tipo de contenido apropiado y codificación, por ejemplo,

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

También compruebe que el prólogo XML contiene la codificación adecuada, p.

<?xml version="1.0" encoding="UTF-8"?> 

El mensaje sobre la información de estilo se refiere a una instrucción de procesamiento faltante, p.

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

que le dicen al navegador cómo estilo/formatear la salida. No es necesariamente necesario si solo desea mostrar el XML sin formato.

+0

Gracias. También puedo agregar encabezado ("Content-Type: text/xml;"); y parece tomar la codificación UTF-8 por defecto. – cannyboy

+0

La mejor respuesta a esta pregunta de @andyk http://stackoverflow.com/a/486786/757850 –