HTMLPurifier将£转换回£

时间:2013-02-25 17:30:49

标签: htmlpurifier

我遇到了HTMLPurifier的问题,似乎正在转换

£

回到

£

我目前的配置是:

$config = \HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('Core.Encoding', 'UTF-8');
$config->set('Attr.AllowedFrameTargets', array('_blank'));
$config->set('HTML.Trusted', true);
$config->set('CSS.Trusted', true);
$config->set('Attr.EnableID', true);

$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'URI');
$def->addAttribute('a', 'rel', 'CDATA');

$objPurifier = new HTMLPurifier($config);
$string = $objPurifier->purify($string);

首先我只是传递了£符号,它似乎被忽略并且没有转换为£因此我决定在将$ string传递给净化器之前运行str_replace(),但这是将它转换回英镑符号 - 所以我真的迷失在这里,如果有人知道配置设置可能会改变这种行为,我会很感激帮助。

我现在在净化后运行str_replace(),但必须有更好的方法。

1 个答案:

答案 0 :(得分:0)

这是设计上的;此处发生的规范化有助于HTML Purifier避免某些类型的XSS错误。 http://htmlpurifier.org/docs/enduser-utf8.html值得一读。