2011-06-15 143 views
0

我试图通过html文件输出XML文本.XML文件是UTF-8格式。我保存在htmlentities($subcat->Name,ENT_QUOTES, "UTF-8")转换后的字符串.String保存为xml中的£1.89 - £3.99 per M²PHP显示特殊字符

虽然显示我用htmlentities_decode($cat->Name,ENT_QUOTES)。但我收到此错误

实体“ACIRC”没有定义。 实体'英镑'未定义

我不知道出了什么问题!

回答

4

不要摆在首位使用htmlentities() - 大多数HTML实体没有XML支持。

改为使用实际的字符数据。

为避免数据破坏XML中的<>,将数据包装在CDATA块中。

例子:

<product> 
<price> 
    <![CDATA[£1.89 - £3.99 per m2]]> 
</price> 
</product> 
+0

你能给任何例如使用CDATA还是同样的错误。 – blakcaps 2011-06-15 10:56:14

+0

@blakcaps我添加了一个例子。 – 2011-06-15 12:07:57

0

如果使用UTF-8作为源,然后输出它的HTML记得设置正确的标题和meta这样的:

<?php 
header ('Content-type: text/html; charset=utf-8'); 
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 

否则你有问题显示。

不需要解码/编码任何东西,因为Pekka建议你不应该首先编码它们,而是使用CData块。 T 母鸡如果你正确地设置你的头和元,你只需输出它们。为您节省大量工作。

如果你的源编码,只需将其输出到浏览器是