这几乎不像是需要净化的 html 代码。
为什么html净化剂会把那个字符串 变成一个问号 当它显然应该是一个空间的时候呢?
我准确的html净化代码是:
//purify the html input
include_once( inc/htmlpurifier-4.4.0/library/HTMLPurifier.auto.php );
$config = HTMLPurifier_Config::createDefault();
$config->set( Core.Encoding , UTF-8 );
$config->set( HTML.Doctype , HTML 4.01 Transitional );
if (defined( PURIFIER_CACHE )) {
$config->set( Cache.SerializerPath , PURIFIER_CACHE);
} else {
# Disable the cache entirely
$config->set( Cache.DefinitionImpl , null);
}
$input = $_POST["about_me"];
# Help out the Purifier a bit, until it develops this functionality
while (($cleaner = preg_replace( !<(em|strong)>(s*)</1>! , $2 , $input)) != $input) {
$input = $cleaner;
}
$filter = new HTMLPurifier($config);
$htmlpurified_output = $filter->purify($input);
我已经在我的php页页眉中启用了 Outf8, 在保存信息时也启用了 Mysql 。
我能够写入, 保存到 DB, 并在同一页的其他文本区域中重新播放其它 UTF8 字符。 罪犯绝对是 html净化器, 返回问题标记, 而不是实际字符 。
我将回答任何其他我能回答的问题。