Php 如何将欧元(€;)符号从Windows-1252转换为UTF-8?

Php 如何将欧元(€;)符号从Windows-1252转换为UTF-8?,php,encoding,utf-8,windows-1252,Php,Encoding,Utf 8,Windows 1252,一个软件生成了一个Windows-1252 XML文件,我想用PHP解析它,然后用UTF8将数据发送到我的数据库中 我尝试了很多解决方案,例如iconv或utf8\u encode函数,但没有结果 它显示的内容类似于€,但不仅仅是€ 我的XML文件如下所示: <?xml version="1.0" encodoing="Windows-1252" standalone="yes"?> <node>The price is 12 &#128; !</n

一个软件生成了一个Windows-1252 XML文件,我想用PHP解析它,然后用UTF8将数据发送到我的数据库中

我尝试了很多解决方案,例如iconvutf8\u encode函数,但没有结果

它显示的内容类似于
,但不仅仅是

我的XML文件如下所示:

<?xml version="1.0" encodoing="Windows-1252" standalone="yes"?>
    <node>The price is 12 &#128; !</node>
如图所示,欧元符号转换为,而不是。它的一个解决方法是
utf8\u解码
,然后再次“重新编码”: $node=iconv('Windows-1252','UTF-8','utf8_解码($node))

下面是一些有效的示例代码:

<?php
$xml = '<?xml version="1.0" encoding="Windows-1252" standalone="yes"?>
    <node>The price is 12 &#128; !</node>';

$doc = new DomDocument();
$doc->loadXML($xml);
$nodes = $doc->getElementsByTagName('node');
$node = iconv('Windows-1252', 'UTF-8', utf8_decode($nodes[0]->nodeValue));
echo $node;
loadXML($xml);
$nodes=$doc->getElementsByTagName('node');
$node=iconv('Windows-1252','UTF-8',utf8_解码($nodes[0]->nodeValue));
echo$节点;

请解释其他解决方案不起作用的原因。编辑一点,我真的不知道为什么不起作用。“It显示”中的“It”是什么。编码问题可能发生在链中的任何位置。我建议您列出导致问题的步骤列表,从获取文件到显示输出还要确保您的项目使用了正确的编码(文件、html等)。您在哪里看到了
的€
?我看到的是
的€
,而不是简单的
符号在什么界面中的意思?在您的HTML页面上?是的,当我打印我的DOMDocument内容时,它是否与上面的HTML相同?它是否包含
<?php
$xml = '<?xml version="1.0" encoding="Windows-1252" standalone="yes"?>
    <node>The price is 12 &#128; !</node>';

$doc = new DomDocument();
$doc->loadXML($xml);
$nodes = $doc->getElementsByTagName('node');
$node = iconv('Windows-1252', 'UTF-8', utf8_decode($nodes[0]->nodeValue));
echo $node;