Javascript Ajax在序列化表单后发布特殊字符
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()函数:(我从这里类似的帖子中获取) 我没有任
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;
};