jquery ajax post传递xml中文转码问题

关于xml里面含有中文,谷歌提交传递到后台,后台查看中文是乱码的问题。

前台关于中文转码,尝试了很多种方式还是乱码

下面是常见的集中转码方式

第一种:采用encodeURIComponent(title,'UTF-8');

var xgm="<?xml version=\"1.0\" encoding=\"utf-8\"?>";
	xgm +='<taxML comment="+encodeURIComponent("暂存",'UTF-8')+'>';


第二种:采用excape(title);

var xgm="<?xml version=\"1.0\" encoding=\"utf-8\"?>";
	xgm +='<taxML comment="+eacape("申报表暂存")+">';


网上常见的转码和解码方式:

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

第三种:在ajax提交的时候加入contentType进行
$.ajax({
		type:"POST",
		url:url,
		data:{putxml:xgm},
		//async: false,//1、同步问题,试过不行
		dataType:"xml",
		//contentType:"pplication/x-www-form-urlencoded; charset=UTF-8",//2、加入该代码,直接转换utf-8不行
		//processData:false,//3、这种网上看到的方式还是不行
		success:function(data){
			alert(data);
		}
	})

第四种:转载【 今天发现在使用jquery ajax.post提交数据时会发现数据在ff正常,但在chrome与ie浏览器中post过去的数据全部是乱码,在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,
自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件
chrome和ie都没有指定,所以出现乱码问题.

我只测试了谷歌提交,其他方式我都没有测试过,所以谷歌提交,中文在数据库日志里面看到的全是乱码问题。
在ajax post请求之前加入以下代码就OK了。问题解决了
$.ajaxSetup({
	  contentType: "application/x-www-form-urlencoded; charset=utf-8"
	});//在post请求前,加上该代码,就解决了该问题
	$.ajax({
		type:"POST",
		url:url,
		data:{putxml:xgm},
		//async: false,
		dataType:"xml",
		//contentType:"pplication/x-www-form-urlencoded; charset=UTF-8",//该代码完全无效,还导致整个xgm传递过去的值是乱码
		//processData:false,
		success:function(data){
			alert(data);
		}
	})
那么问题来了,我看的脚本之家的两种方式,结果第一种方式我使用就没问题,我使用第二种直接在ajax里面加入contentType:""就没有效果




第四种解决该办法,查看的是该链接: http://www.jb51.net/article/42801.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值