【发布时间】:2014-05-05 16:00:08
【问题描述】:
我正在尝试使用 PHP 输出 XML 文件,除了创建的文件不是 UTF-8 编码的文件,它是 ANSI 之外,一切都是正确的。 (我看到当我打开文件并执行另存为...)。 我正在使用
$dom = new DOMDocument('1.0', 'UTF-8');
但我发现非英语字符不会出现在输出中。 我正在寻找解决方案,我尝试先添加
header("Content-Type: application/xml; charset=utf-8");
在 php 脚本的开头,但它说: 文档末尾的额外内容 下面是第一个错误之前的页面渲染。
我尝试了其他一些建议,例如在创建文档时不要包含“UTF-8”,而是单独编写它:
$doc->encoding = 'UTF-8'; ,但结果是一样的。
我用过
$doc->save("filename.xml");
保存文件,我尝试将其更改为
$doc->saveXML();
但没有出现非英文字符。 有什么想法吗?
【问题讨论】:
-
您是否尝试过在 FF 或 chrome 浏览器中打开保存的文件?当你得到输出页面时,你的浏览器编码类型是什么?
-
我很困惑。您是在尝试创建 XML 文件,还是通过 http 返回 XML?您的大部分帖子似乎都是关于创建 XML 文件的,但是您为什么要更改响应标头呢?您实际将这些非英文字符添加到 XML 文档的代码在哪里?
-
这实际上是我在这里的第一篇文章(也是我的第一个“严肃”应用程序),所以我对问题的错误解释表示歉意。我正在尝试创建一个 XML 文件,并且从数据库添加的数据中包含非英文字符,因此问题更可能出在其他地方,而不是在 php 中,如下面的答案所述。
-
UTF-8 all the way through 的可能重复项