£变成了£为什么?XML ISO编码问题?

Mor*_*rph 2 xml encoding iso

很高兴通过PHP和SimpleDOM.php削减的Web表单将内容保存到我的XML文件中

我需要保存具有英文定价的物品,所以我需要英镑符号.但是,当我这样做时,会发生两件事:

  1. 它将保存的价格返回为£

  2. 如果我再次保存它而没有任何其他更改,SimpleDom解析器然后barfs并删除英文英镑符号之外的XML文件中的任何其他内容.

我的XML文件中的顶行看起来像

<?xml version="1.0" encoding="ISO-8859-1"?>
Run Code Online (Sandbox Code Playgroud)

在XML文件中,£被保存为

&amp;Acirc;&amp;pound;
Run Code Online (Sandbox Code Playgroud)

据我所知iso-8859-1应该有£符号,所以非常困惑为什么这个Acirc进入它....

我在另一个线程上看到有人说尝试使用8859-15,但这没有任何区别.

有什么想法吗?

干杯Jas(完成所有这些编码的东西)

for*_*two 9

unicode代码点£是U + 00A3.在UTF-8编码中0xC2 0xA3.现在,在ISO-8859-1中,0xC2是Å,而0xA3是£.因此,在流程的某个地方,您输入的内容将变为UTF-8,其被解释为ISO-8859-1.您是否看过"表单"在到达PHP代码之前如何对数据进行编码.

此外,这个SimpleDOM做什么是wrt实体?&ACIRC; 并且& 不是没有声明的有效XML实体.SimpleDOM是否添加声明?