php中的html实体解码

php中的html实体解码,php,utf-8,character-encoding,Php,Utf 8,Character Encoding,我似乎完全无法绕过utf-8字符编码 因此,我将内容从数据库导出为utf-8XML文件。 我要导入的软件对字符编码非常严格,所以我不能把所有内容都放在CDATA标记中 数据中已经有一大堆奇怪的字符,例如,,-…等 这些在xml中不起作用,需要替换掉(通常只使用“引号”) 理想情况下,我希望解码所有字符,然后使用htmlspecialchars($text,ENT_COMPAT,'UTF-8',FALSE)再次对它们进行编码。但我似乎找不到一个能解码它们的函数。有吗? 我已经开始用str_repl

我似乎完全无法绕过utf-8字符编码

因此,我将内容从数据库导出为utf-8XML文件。 我要导入的软件对字符编码非常严格,所以我不能把所有内容都放在CDATA标记中

数据中已经有一大堆奇怪的字符,例如,,-…等

这些在xml中不起作用,需要替换掉(通常只使用“引号”)

理想情况下,我希望解码所有字符,然后使用htmlspecialchars($text,ENT_COMPAT,'UTF-8',FALSE)再次对它们进行编码。但我似乎找不到一个能解码它们的函数。有吗? 我已经开始用str_replace()手动遍历每个实体,但它变成了比我预期的更大的工作

任何帮助都是救命稻草。 谢谢

html\u entity\u decode()也许

在某些情况下,在php中的字符转换问题中,设置区域设置很重要。不管是哪一个,例如

setlocale(LC_CTYPE,'en_US.utf8');

但我建议,如果可能的话,在不返回实体的情况下,从一开始就投入任何时间来正确编码都是值得的。

谢谢,我一直在尝试html\u entity\u decode()。但是,即使设置了区域设置,它似乎仍然不能转换像ndash这样的实体,是的,我现在的目标是删除所有这些愚蠢的字符,这样就需要实体了。不幸的是,我必须处理我得到的数据,我似乎遇到了一个难题,那就是如何更正编码。目前我能看到的唯一解决方案是查找和替换。也许你必须安装一个区域设置或其他东西,因为我的mac(!)它只是从命令行开始工作:
mac:~$php\n\n–
(很抱歉没有格式,\n=newline)debian stock lenny:相同。如果你想将它们一起删除,使用iconv并将UTF-8转换为ASCII//translat或ASCII//IGNORE或类似的格式。