含有中文字符的json对象通过jquery提交到mongoose web的乱码问题
来源:互联网 发布:颜色识别软件下载 编辑:程序博客网 时间:2024/05/17 04:16
这个函数是把html的表单对象转换为Json对象
(function($){
$.fn.serializeJson=function(){var serializeObj={};
$(this.serializeArray()).each(function(){
serializeObj[this.name]=this.value;
});
return serializeObj;
};
})(jQuery);
function fncAppendTask()
{
var data = $("#frmAppendTask").serializeJson();//得到json对象
eval("var str1 = '"+JSON.stringify(data)+"';");
var ajaxDoRet = $.ajax({
type: "post", //请求方式
url: "/cgiAppendNewTask", //请求的url地址
dataType: "text", //返回格式为text
async: false, //请求是否异步,默认为异步,这也是ajax重要特性
timeout:8000,
contentType: "application/x-www-form-urlencoded;charset=utf-8",
data: str1, //参数值
beforeSend: function() {
var i =1;//请求前的处理
},
success: function(req) {
alert("插入已提交!");
},
complete: function(XMLHttpRequest,status) {
//请求完成的处理
var i = 1;
//alert(status);
if(status=='timeout')
{//超时,status还有success,error等值的情况
ajaxDoRet.abort();
}
},
error: function() {
var i =1;
//请求出错处理
//alert("error");
}
});
}
stringify函数会把中文进行URLEncode编码处理,所以通过eval这种方式再给转变过来。
本案中,html页面编码是gb2312,<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
但事实上,即使在通过jquery提交json对象时候,正确设置了contentType: "application/x-www-form-urlencoded;charset=gb2312", 提交的字符串也是gb2312,到后台依然会是乱码(),
一些文章说,只要jqeury提交时候设置了charset,jquery-1.8.3.min.jsjs里面设置了charset,且两个一致就可解决编码问题,经过我验证,即使这样,还是会有乱码。
因为不管你html页面编码是什么,无论是utf-8,gb2312,因为jquery在提交时候,会把字符进行unicode编码处理。这样,提交到后台就又乱码了。
所以索性,在提交时候,用utf-8,提交到后台以后如果需要多字节字符,用函数再转换过来。
mongoose web后台的代码,本例中,vc后台工程为多字节编码
if(stricmp(conn->uri, "/cgiAppendNewTask") == 0)
{
Json::Value v;
Json::Reader reader;
USES_CONVERSION;
strcpy(szFileContent,W2A(CA2W(conn->content,CP_UTF8)));
if(!reader.parse(szFileContent,v))
{
return -1;
}
//这样,szFileContent里面就还原出正确的gb2312编码了。
- 含有中文字符的json对象通过jquery提交到mongoose web的乱码问题
- url里含有中文参数,已get方式提交到接口,中文编码后有乱码问题的一种解决
- 解决jsp页面传递通过get方式提交中文到后台乱码的问题
- 解决用jquery的get或者post提交方式提交到struts2中的action中文乱码问题
- jQuery ajax 提交表单中文乱码的问题
- jQuery-Ajax提交数据中文乱码问题的解决方案
- 中文字符的值在web中提交的问题
- Struts里提交中文表单到ActionForm的乱码问题
- Extjs提交的Json里中文乱码
- HTML通过from表单提交到servlet中文乱码问题
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- All About JAVA 关于英文服务器下输出含有中文字符文件乱码的问题
- 【转载】jquery getJson 中文字符参数乱码问题的解决办法
- java web中的中文字符乱码问题的解决
- JQuery ajaxSubmit提交中文乱码的解决方案
- JQuery AJAX提交中文乱码的解决方案
- JQuery ajaxSubmit提交中文乱码的解决方案
- JQuery AJAX提交中文乱码的解决方案
- Android 15k+面试题
- git学习笔记--远程仓库
- 关于打飞机项目的一些细节知识点
- 数据加密的一些浅谈总结
- 初学CentOS——shell基本语法
- 含有中文字符的json对象通过jquery提交到mongoose web的乱码问题
- STL之set
- 图片的三级缓存
- Missing Number
- 公司所用的技术和工具汇总
- Java 基于多客户端的ServerSocket—聊天服务器端,客户端Socket “操作文件”系统的程序拼接
- 一些容易混淆的 C 和 C++ 的不兼容特性
- Android第三方框架(不断更新中)
- java集合复习2