我试图使用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();
但非英语字符没有出现。 有什么想法吗?
答案 0 :(得分:0)
ANSI不是真正的编码。这个词基本上意味着“我的Windows计算机配置使用的任何编码”。获得ANSI是在某处依赖默认编码的明显标志。
为了生成有效的UTF-8 输出,您必须使用正确的UTF-8 输入提供所有XML功能。最直接的方法是将PHP源代码保存为UTF-8,然后输入一些非英文字母。如果要从外部源(例如数据库)读取数据,则需要确保完整的工具链正确使用编码。
无论如何,在未公开的软件中使用“另存为”并不是确定文件编码的可靠方法。