带有 utf-8 的 xml 的 PHP header

2022-08-31 01:11:14

我正在使用 header() 函数将文件转换为 XML 标准。问题是当我使用 ;?>它只是呈现 ,而没有控制/字符集。我是不是用错了?<?php header("Content-type: text/xml; charset=utf-8")<?xml version="1.0"?>


答案 1

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

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

您的标记表示您正在使用 DOM 创建 XML 文档。如果将 DomDocument 构造函数更改为同时传递字符集,

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

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


答案 2

header只需在结果中设置一个HTTP标头。PHP不会对该值执行任何其他操作,因此由您来确保正确使用它。

如果使用 XML 库生成 XML(包括序言),请查看该库的文档。如果要“手动”输出 XML(o,则需要自己将必要的属性添加到序言中。


推荐