编程语言
首页 > 编程语言> > php-如何使用HTML Purifier使 正常运行?

php-如何使用HTML Purifier使 正常运行?

作者:互联网

我在PHP项目中使用HTML Purifier,但无法使其与用户输入一起正常工作.

我让用户使用WYSIWYG编辑器(TinyMCE)输入HTML,但是每当用户输入HTML实体& nbsp; (不间断空格)作为奇怪的外来字符(Â)被保存到数据库中.

但是,事实是,当我使用WYSIWYG编辑器编辑保存的条目时,它会正确显示为& nbsp;.它在显示时也可以正常运行,只是在源代码中显示为真实空格,而不是不间断空格.

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

我阅读了有关Unicode and HTML Purifier的文档,并将数据库和网页编码更改为UTF-8,但仍无法解决不间断空格字符的问题.其他HTML实体,例如& lt;和& gt;保存为<和&gt ;,为什么不& nbsp ;?

解决方法:

不间断空格不会作为一个奇怪的外来字符保存在数据库中,而是另存为两个字符. 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.

标签:htmlpurifier,character-encoding,utf-8,php
来源: https://codeday.me/bug/20191210/2103793.html