我有个奇怪的问题。我使用CKEditor-4从用户那里收集html格式的格式化文本。此外,使用htmlpurifier从服务器过滤html内容。
当用户使用”、’和“等引号时,CKEditor会将它们转换为”、’和“等html实体,这很好。问题是,当我使用htmlpurifier对它们进行过滤时--这个引用get会自动解码。这防止了内容被呈现给用户以供稍后编辑,因为引号是以简单的方式编码的,如“
我该如何解决这个问题?我想,如果我能阻止htmlpurifier自动解码,这是可行的,但我是个新手--所以我找不到方法。
在将htmlentities传递给htmlpurifier之前,我尝试过使用它。但它会对整个html进行编码,因此:完全停止htmlpurifier对html的净化。
发布于 2020-12-15 19:12:32
在CBroe的评论之后,我发现我的应用程序并没有一直使用UTF-8。
我也不能纠正它。对于那些处于类似情况的人,我找到了一个变通方法。htmlPurifier确实支持对所有非ASCII码字符进行编码的配置,但有一些权衡--这对我的情况(我认为)很好。
您可以像这样启用htmlpurifier配置Core.EscapeNonASCIICharacters
$config->set('Core.EscapeNonASCIICharacters', true);这对我来说很有效。
https://stackoverflow.com/questions/65301957
复制相似问题