XML解析错误:未定义的实体 - 特殊字符

lau*_*kok 7 php xml special-characters html-entities

为什么XML在某些特殊字符上显示错误,有些可以吗?

例如,下面会创建错误,

<?xml version="1.0" standalone="yes"?>
<Customers>
    <Customer>
        <Name>L&ouml;ic</Name>
    </Customer>
</Customers>
Run Code Online (Sandbox Code Playgroud)

但这没关系,

<?xml version="1.0" standalone="yes"?>
<Customers>
    <Customer>
        <Name>&amp;</Name>
    </Customer>
</Customers>
Run Code Online (Sandbox Code Playgroud)

htmlentities('Löic',ENT_QUOTES)顺便说一下,我通过php转换特殊字符.

我怎么能绕过这个?

谢谢.

编辑:

我发现如果我使用数字字符,它可以正常工作 L&#243;ic

现在我必须找到如何使用PHP将特殊字符转换为数字字符!

Que*_*tin 17

有XML规范定义了五个实体- ,&amp;,,&lt;&gt;&apos;&quot;

很多在HTML DTD定义的实体.

您不能在通用XML中使用HTML中的那些.

你可以使用数字引用,但你可能最好只是直接得到你的字符编码(这基本上归结为:

  • 设置编辑器以UTF-8保存数据
  • 如果使用编程语言处理数据,请确保它具有UTF-8感知能力
  • 如果将数据存储在数据库中,请确保将其配置为UTF-8
  • 当你成为了你的文档,确保HTTP头将其指定为UTF-8(在XML的情况下,UTF-8是默认的,所以不指定任何东西是几乎一样好)

)