在PHP字符串中取消Unicode字符

时间:2014-10-18 00:43:13

标签: php regex unicode

如果用户在我的网站上的登录表单中输入密码为密码§1234,则相应的$ _POST变量将包含字符串密码\ xc2 \ xa71234 。然后对该字符串进行哈希处理,并与数据库中已有的密码哈希进行比较。

这通常不会成为问题,因为这种转义将在注册和登录阶段发生,因此仍然会匹配数据库中的哈希。但是,我的站点允许通过桌面API进行登录,并且此API在散列之前正确解释字符串而不使用转义字符。因此桌面哈希不匹配,因此用户无法登录。

我知道这个主题有很多线程,但我找不到任何处理我的问题的解决方案,这可能与语法是\ xc2 \ xa7而不是U + 00A7的事实有关

最简单的解决方案当然是在桌面上逃避它,但我宁愿解决问题而不是让一切都同样不正确。更新服务器也比发布多个应用更新更容易。

1 个答案:

答案 0 :(得分:0)

看起来您可以使用utf8_encode($password)Sample here