如何使用HTML Purifier正常运行?

时间:2008-12-18 21:23:53

标签: php utf-8 character-encoding htmlpurifier

我在PHP项目中使用HTML Purifier,但在使用用户输入时无法正常使用。

我让用户使用WYSIWYG编辑器(TinyMCE)输入HTML,但每当用户输入HTML实体 (不间断空格)时,它就会被保存到数据库中怪异的外国人(Â)。

但是,当我使用WYSIWYG编辑器编辑保存的条目时,它会正确显示为 。它在显示时也能正常运行,只在源代码中显示为真实空间,而不是不间断的空格字符。

此外,在MySQL数据库中,它显示为奇怪的外来字符。

我阅读了关于Unicode and HTML Purifier的文档,并将我的数据库和网页编码更改为UTF-8,但我仍然遇到没有破坏空间字符的问题。其他HTML实体(例如&lt;&gt;)将保存为<>,但为什么不&nbsp;

2 个答案:

答案 0 :(得分:3)

不间断的空间没有作为一个奇怪的外来字符保存在您的数据库中,它被保存为两个字符。 Unicode非破坏空格字符以UTF-8编码为0xC2 0xA0,在ISO-8859-1中看起来像“”(即一个奇怪的外来字符后跟一个不间断的空格)。

您可能忘记在数据库连接上执行SET NAMES 'utf8',这会导致PHP将其数据作为ISO-8859-1(默认值)发送到MySQL。

查看“UTF-8 all the way through…”以了解如何在使用PHP和MySQL时正确设置UTF-8。

答案 1 :(得分:0)

它还可以帮助您了解&#160;&nbsp;的替代,如果您输出任何人类可读的XML,您可能需要它;)