在 php 中使用 SimpleXMLElement 中的导出获取 Yaᗺm 而不是 Yaşam

问题描述

我正在尝试使用 SimpleXMLElement 导出 XML 并更改字符。

我尝试使用不同的编码,将 CDATA 作为字符串插入,但没有解决任何问题。

我错过了什么?

导出代码

<?PHP 

// Create a new XML
$xmlExport = new SimpleXMLElement('<Products/>');

// Add a new node.        
$product = $xmlExport->addChild('Product');

// Adding Yaşam.
$product->addChild('Category');
$product->Category = "Yaşam";

// Exporting the new XML
$xmlExport->asXML('xml.xml');

 ?>

我得到的结果:

 <?xml version="1.0"?>
<Products>
    <Product>
        <Category>Ya&#x15F;am</Category>
    </Product>
</Products>

预期结果:

 <?xml version="1.0"?>
<Products>
    <Product>
        <Category>Yaşam</Category>
    </Product>
</Products>

解决了问题

我发现了问题,我在某处读到 SimpleXMLElement 认使用 UTF-8 编码,在我的情况下,信息似乎有误或不起作用。

我变了

$xmlExport = new SimpleXMLElement('<Products/>');

$xmlExport = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products/>");

解决方法

我发现了问题,我在某处读到 SimpleXMLElement 默认使用 UTF-8 编码,在我的情况下,信息似乎有误或不起作用。

我变了

$xmlExport = new SimpleXMLElement('<Products/>');

$xmlExport = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><Products/>");