微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 为’htmlspecialchars()的出现添加’utf-8’参数 – 它可以破坏任何东西吗?

假设我的项目始终是utf-8并且一直使用utf-8编码,如果我将所有出现的htmlspecialchars($var)更改为htmlspecialchars($var,ENT_QUOTES,’utf-8),是否有任何合法可能会破坏“)?

我知道一件事:显然,ENT_QUOTES与ENT_COMPAT的不同之处在于它也逃脱了单引号.假设我知道这一点不会破坏任何东西,还剩下什么吗?

措辞不同:

在没有charset参数的情况下使用htmlspecialchars()时是否存在可想象的结果,仅使用来自charset的数据,与charset参数一起使用时与htmlspecialchars()不同?

(在任何时候,htmlspecialchars($stringThatIsValidUTF8,ENT_QUOTES)!== htmlspecialchars($stringThatIsValidUTF8,’utf-8′)?)

我的理解说不,永远不会. Another question here on stackoverflow也暗示不.到目前为止,使用更改浏览我的项目沙箱也说不.但是,我不确定我是否会忽略某些东西.

解决方法

我认为另一个问题中PHP手册的引用肯定地回答了它:

For the purposes of this function,the charsets ISO-8859-1,ISO-8859-15,UTF-8,cp866,cp1251,cp1252,and KOI8-R are effectively equivalent,as the characters affected by htmlspecialchars() occupy the same positions in all of these charsets.

“&>等等在每个编码中都有相同的代码,即使在UTF-8中它们只需要一个字节,因为UTF-8字符只在必要时才会占用多个字节.因此,即使你到目前为止,一直在用ISO-8859-1处理UTF-8数据,当切换到显式UTF-8输入时,输出将是相同的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐