Javascript Ajax在序列化表单后发布特殊字符

Javascript Ajax在序列化表单后发布特殊字符,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,AJAX代码: var data = $('#myIDform').serializeObject(); $.post( 'my url', {data: data}, function(response){ response }); serializeObject()函数:(我从这里类似的帖子中获取) 我没有任

AJAX代码:

var data = $('#myIDform').serializeObject();
        $.post(
                'my url',
                {data: data},
                function(response){
                    response
                });
serializeObject()函数:(我从这里类似的帖子中获取)

我没有任何类型的解析或字符串化方法,每当我在数据库中添加带有特殊字符(例如“ñ”)的新条目时,它都会在响应中完美地显示出来,但数据库会保存以下内容:“ñ” 我不确定问题是否出在数据库中,因为没有AJAX的情况下,同样的事情也会发生

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

我一直在这里阅读,JSON.parse和JSON.stringify似乎对我不起作用,因为我在数据库中发现了一些奇怪的东西:“{”我想我做得不对,或者有些东西没有按预期工作

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

在.js中,我将其命名为:
var data=JSON.stringify($(“#myIDform”).serializeObject();

它在数据库中的外观:


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

另外:您使用的是什么数据库及其编码集是什么?您在javascript、PHP和数据库中使用的是什么编码
$.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;
};