如何解决将数组导出到 XML 文件 - utf-8 编码问题
我想在 PHP 中将数组导出到 XML 文件:
$fxml = fopen('file.xml','w');
$xml = new SimpleXMLElement('<postal_codes/>');
$rows = $db->query('SELECT * FROM postal_codes ORDER BY ID');
foreach ($rows as $row) {
if ($provinces[$row['region']] == 'test') {
$place = $xml->addChild('place');
foreach($fields as $key => $val) {
$place->addChild($val,$row[$val]);
}
}
}
fwrite($fxml,$xml->asXML());
fclose($fxml);
数据已导出,但值不包含波兰语字符,例如:ń、ś、ł、ó 等。如何解决此问题?而不是正确的字符,我有:ś ń ę
解决方法
那是因为您加载了一个 ASCII XML 文档。如果您提供 UTF-8 编码,则不会对 unicode 字符进行编码。
$data = "Witaj świecie";
$xml = new SimpleXMLElement("<postal_codes/>");
$xml->addChild("place",$data);
echo $xml->asXML();
$xml = new SimpleXMLElement(
"<?xml version='1.0' encoding='utf-8'?>\n<postal_codes/>"
);
$xml->addChild("place",$data);
echo $xml->asXML();
输出:
<?xml version="1.0"?>
<postal_codes><place>Witaj świecie</place></postal_codes>
<?xml version="1.0" encoding="utf-8"?>
<postal_codes><place>Witaj świecie</place></postal_codes>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。