我正在使用header()函数将文件转换为XML标准。问题是,当我使用
<?php header("Content-type: text/xml; charset=utf-8")
; ?>时,它只呈现<?xml version="1.0"?>
,没有编码/字符集。我使用得不正确吗?<?php header("Content-type: text/xml; charset=utf-8")
; ?>时,它只呈现<?xml version="1.0"?>
,没有编码/字符集。我使用得不正确吗?header()
函数只是修改HTTP头。您发布的代码设置了一个Content-Type
头,这对于告诉浏览器和其他客户端正在提供的文件类型非常重要。
您所说的<?xml version="1.0"?>
行是文档本身的一部分,不受HTTP标头影响。
您的标签显示您正在使用DOM创建XML文档。如果您更改DomDocument构造函数以传递字符集,
$doc = new DomDocument('1.0', 'UTF-8');
它应该在XML文档中输出该字符集。
header
只是在结果中设置HTTP头。 PHP不会对该值做任何其他操作,因此您需要确保它被正确使用。
如果您正在使用XML库来生成XML(包括序言),请查阅该库的文档。如果您正在手动输出XML,则需要自行添加所需的属性到序言中。
你也可以使用
<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?>