`$('#form')。serialize()`弄乱了UTF-8字符

时间:2011-12-13 21:39:02

标签: javascript encoding

我正在使用AJAX插入一个表单,我正在使用:$('#form').serialize()来获取所有输入并将其发送到insert.php。

问题是像á这样的字符会变成%A9等等。

如何在发送之前防止这种情况发生,或者当我通过$ _POST检索它时如何获取正确的字符,以便我可以将它们正确插入我的数据库?

编辑-----

顺便说一句:没有AJAX的相同表单,只是action =“POST”到SAME insert.php正确插入,所以问题只是序列化()搞乱HTML。

2 个答案:

答案 0 :(得分:3)

Jquery serialize()序列化为UTF-8。因此á成为正确的UTF-8编码%c3%a1。尝试使用已根据php文档解码的$_REQUESThere

答案 1 :(得分:1)

您需要做的最后一步是在PHP文件中解码如下:

$ usuario = utf8_decode($ _ POST [ 'NOMBRE']);

我在将数据发送到数据库之前将utf8_decode()与htmlspecialchars()结合使用:

$ nombres = utf8_decode(htmlspecialchars($ _ POST ['nombres']));