PHP头部设置XML文件编码为UTF-8

16
我正在使用header()函数将文件转换为XML标准。问题是,当我使用<?php header("Content-type: text/xml; charset=utf-8"); ?>时,它只呈现<?xml version="1.0"?>,没有编码/字符集。我使用得不正确吗?
3个回答

14

header()函数只是修改HTTP头。您发布的代码设置了一个Content-Type头,这对于告诉浏览器和其他客户端正在提供的文件类型非常重要。

您所说的<?xml version="1.0"?>行是文档本身的一部分,不受HTTP标头影响。

您的标签显示您正在使用DOM创建XML文档。如果您更改DomDocument构造函数以传递字符集,

$doc = new DomDocument('1.0', 'UTF-8');

它应该在XML文档中输出该字符集。


谢谢你们两个。我有点懒得去搜索它。我想到了这样的事情,但是我太懒了,甚至连想都不想。:o) - msmafra

2

header只是在结果中设置HTTP头。 PHP不会对该值做任何其他操作,因此您需要确保它被正确使用。

如果您正在使用XML库来生成XML(包括序言),请查阅该库的文档。如果您正在手动输出XML,则需要自行添加所需的属性到序言中。


谢谢。我有点懒得去搜索它。我想到了这样的事情,但是我太懒了,甚至连想都不想。:o) - msmafra

0

你也可以使用

<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接