在php中解码html实体
问题描述:
我似乎完全无法绕过utf-8字符编码。在php中解码html实体
因此,我将数据库中的内容导出为utf-8 xml文件。 我输入的软件对字符编码相当严格,所以我不能只将所有内容都放入CDATA标签中。
有一大堆怪异的字符,例如’,—…已经在数据中。
这些不在xml中工作,需要更换(通常只有一个'报价')。
理想情况下,我想解码所有字符,然后使用htmlspecialchars($ text,ENT_COMPAT,'UTF-8',FALSE)将它们重新编码回去。但我似乎无法找到解码它们的函数。有一个吗? 我已经开始用str_replace()手动遍历每个实体,但它变得比我预期的要大得多。
任何帮助将是一个救星。 谢谢
答
html_entity_decode()也许?
在某些情况下,在php中的字符转换问题中,设置语言环境非常重要。无论哪个,例如
setlocale(LC_CTYPE,'en_US.utf8');
但我想提醒的是,投资正从开头的编码权利,恕不回复到实体,如果在所有可能的任何时刻,是值得的。
谢谢,我一直在尝试html_entity_decode()。但即使使用语言环境设置,它仍然不会转换实体,如ndash 是的,我现在的目标是删除所有这些愚蠢的字符,因此实体完全需要。不幸的是,我必须处理我提供的数据,而且我似乎遇到了一堵砖墙,以至于我可以如何纠正编码。我目前唯一可以看到的解决方案是查找和替换。 – Leon 2010-07-16 09:22:00
也许你必须安装一个语言环境或其他东西,因为我的Mac(!)它只是在命令行中工作:'mac:〜$ php \ n \ n -'(抱歉缺少格式化,\ n =换行符)debian股票lenny:相同。 – mvds 2010-07-16 10:09:30
如果你想一起摆脱它们,使用iconv并从UTF-8转换为ASCII // TRANSLIT或ASCII // IGNORE或类似的东西。 – mvds 2010-07-16 10:14:39