我正在使用AJAX插入一个表单,我正在使用:$('#form').serialize()
来获取所有输入并将其发送到insert.php。
问题是像á
这样的字符会变成%A9
等等。
如何在发送之前防止这种情况发生,或者当我通过$ _POST检索它时如何获取正确的字符,以便我可以将它们正确插入我的数据库?
编辑-----
顺便说一句:没有AJAX的相同表单,只是action =“POST”到SAME insert.php正确插入,所以问题只是序列化()搞乱HTML。
答案 0 :(得分:3)
Jquery serialize()
序列化为UTF-8。因此á
成为正确的UTF-8编码%c3%a1
。尝试使用已根据php文档解码的$_REQUEST
。 here
答案 1 :(得分:1)
您需要做的最后一步是在PHP文件中解码如下:
$ usuario = utf8_decode($ _ POST [ 'NOMBRE']);
我在将数据发送到数据库之前将utf8_decode()与htmlspecialchars()结合使用:
$ nombres = utf8_decode(htmlspecialchars($ _ POST ['nombres']));