首页 > 解决方案 > 在 php 中使用 SimpleXMLElement 中的导出获取 Yaşam 而不是 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/>");

标签: phpxmlencodingcdata

解决方案


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

我变了

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

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

推荐阅读