使用é(xE9)字符的xml验证问题

时间:2012-05-17 16:20:33

标签: xml encoding utf-8 xml-validation google-product-search

我遇到的问题是我从数据库中生成的数据生成的XML文件。

我正在指定UTF-8的编码类型。

我有一些文字,当我在浏览器中查看它时,或者在数据库中看起来代表一个é字符。但是,当我在Notepad ++中查看XML文件时,它显示为 [xE9]

这是我的XML文件顶部的定义:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">

这是我的XML文件的摘录,并显示导致问题的字符。我很困惑为什么它显示为非UTF-8字符,如下所示,但这就是我的XML无效的原因。

<description><![CDATA[work appliqu顤ress. Picco three-quarter sleeved style. Cutwork appliqu顦eatures fitted, with side pockets.]]></description>

在我的PHP脚本中,我使用的是htmlspecialchars函数,但它似乎没有处理这个字符:

<description><![CDATA[<?php echo htmlspecialchars($product['product-description']) ?: 'CRMPicco Online'; ?>]]></description>

不幸的是,文件中有许多实例存在此字符,所以我不能只从数据库中删除一个字符。

我应该能用PHP清理它吗?

1 个答案:

答案 0 :(得分:0)

这可以使用PHP中的iconv函数来完成:

$text = iconv("UTF-8","UTF-8//IGNORE",$text);

我已经更改了代码以使用它,它可以工作。