我有一个生成XML结果的Web服务。
我一直在这个网站上工作到现在,因为在本地(在我的机器中)它以另一种方式工作,就像在服务器中一样。。。
服务器有英文操作系统,我的机器有匈牙利操作系统(win1250或iso-8859-2)。因此,我必须重新配置数据库访问(将客户端编码设置为utf),以保留匈牙利字符,如"õ"、"ü"。。。
现在输入正常,只有输出产生错误。。。
在英文服务器中,此代码因错误而中止:
$s = "'xf5t'xdb";
$doc = new DOMDocument('1.0', 'iso-8859-2');
$doc->formatOutput = true;
$m = $doc->createElement('package');
$doc->appendChild($m);
$n = $doc->createElement('Msg');
$m->appendChild($n);
$n->nodeValue = $s;
$xs = $doc->saveXML();
echo($xs);
错误是:
PHP Warning: DOMDocument::saveXML()
[<a href='domdocument.savexml'>domdocument.savexml</a>]:
output conversion failed due to conv error, bytes 0xF5 0xDB 0x3C 0x2F
我不知道如何在输出中产生"õ"answers"ü"字符。
我可以给他们看:
$s = "'xf5t'xdb";
echo($s."<br>");
但是xml生成失败了,不管我使用SimpleXML还是Dom。。。
解决方案是什么?
感谢您的每一个想法:dd
如果您的数据使用utf8,难道不能生成utf8-xml而不是iso-8859-2吗?否则,您将不得不使用mb_convert_encoding()