Php HTML净化器选择性地吃特殊字符
对符合UTF-8的数据库使用PHP。下面是输入的方式Php HTML净化器选择性地吃特殊字符,php,javascript,htmlpurifier,Php,Javascript,Htmlpurifier,对符合UTF-8的数据库使用PHP。下面是输入的方式 用户类型输入到文本区域 使用javascript escape()编码的textarea 通过HTTP post传递 使用PHP rawurldecode()解码 使用默认设置通过HTMLPurifier 为MySQL转义并存储在数据库中 它以通常的方式出现,我在页面加载时运行unescape()。这是为了允许人们,比如说,直接从word文档复制和粘贴,并显示智能引号 但HTMLPurifier似乎在处理非UTF-8特殊字符,这些字符转义()
XmlHttpRequest
?如果没有,请确保包含表单的页面被用作utf-8
$\u POST
访问该值,则不应对其进行解码,因为已经进行了解码。这样做会弄乱数据
设置名称utf8
)
最后,再次输出字符串时,请确保该页面作为utf-8使用。系统可以很好地处理智能引号,因此我不怀疑我的utf印章。encodeURIComponent通过HTMLPurifier获得,非常好,谢谢。但我在$\u POST中看到了%20。但奇怪的是,decodeURIComponent在我试图在生成的页面上运行它时抱怨URI无效,尽管unescape工作得很好。有什么想法吗?聪明的报价并不能保证utf-8能正常工作。如果iso-8859-1包含智能报价,一些客户会将其解释为cp-1252。你需要仔细检查整个管道。在添加JS之前,请尝试使用普通html表单。尝试使用汉字进行测试,因为它们在cp-1252和iso-8859-1中都不存在。