序列化表单后,Ajax会发布特殊字符

时间:2015-12-03 11:12:59

标签: javascript php jquery json ajax

AJAX代码:

var data = $('#myIDform').serializeObject();
        $.post(
                'my url',
                {data: data},
                function(response){
                    response
                });

serializeObject()函数:(我从这里的类似帖子中获取了它)

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

我没有任何类型的解析或字符串化方法,每当我在我的数据库中添加一个带有特殊字符的新条目(例如'ñ')时,它在响应中完美显示,但数据库保存了这个: “A±” 我不确定问题是在数据库中,因为没有AJAX的同样的事情,工作。

编辑:当我手动刷新页面时,它显示为数据库,因为它是采集数据的地方

我一直在这里阅读,JSON.parse和JSON.stringify似乎对我不起作用,因为我在数据库中得到了一些奇怪的东西:'{'我想我没有正确地做到这一点或者有些工作正常不是预期的。

在.php中,我将其解析为:$result = $obj->insert ( JSON_parse($_POST['data']) );

在.js中,我将其标记为:var data = JSON.stringify($('#myIDform').serializeObject();

数据库中的样子:http://prntscr.com/99t6po

编辑:已解决。数据库和PHP在不同的字符集中

0 个答案:

没有答案