在使用mui.ajax发送请求时,参数中带有中文时会出现乱码的情况,看之前的提问说这个问题已经解决了,那还是在去年11月份,但是为什么现在还有这个问题?
mui.ajax(url,{
data:{
"token":tokenValue,
"_sourcename":"put_journal_list",
"_method":"PUT",
"_define":"",
"_id":"",
"_param":"["+str+"]"
},
dataType:'json',//服务器返回json格式数据
type:'post',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
success:function(data){
//服务器返回响应,根据响应结果,分析是否登录成功;
console.log(JSON.stringify(data));
},
error:function(xhr,type,errorThrown){
//异常处理;
console.log(type);
}
});
水影鸣人 (作者)
str这个参数中包含中文
2015-04-24 16:47
DCloud_UNI_FXY
所有参数我们均使用encodeURIComponent做了编码。排查下你服务端接收参数的地方是否有问题
2015-04-24 16:52
水影鸣人 (作者)
回复 DCloud_UNI_FXY:请问你们使用的是什么编码方式做的编码?gbk?utf-8?还是其他的什么?
2015-04-24 17:06
DCloud_UNI_FXY
。。。我们没有做什么编码方式,编码是你的页面编码,你可以自己设置自己页面的编码。
不过HBuilder默认的应该是utf8
2015-04-24 17:27
水影鸣人 (作者)
回复 DCloud_UNI_FXY:xmlhttprequest这种请求方式也会做encodeURLComponent这样的处理吗?
2015-04-24 17:30
DCloud_UNI_FXY
mui.ajax里边我们统一作了encodeURLComponent。自己用xhr写的话。需要自己处理编码问题
2015-04-24 17:38
水影鸣人 (作者)
回复 DCloud_UNI_FXY:嗯!发现了两者的不同,我用xhr发请求的时候就不存在这个问题。经过检查发现,使用mui.ajax发请求,里面的中文是奇数个就转换不正确,偶数个就没问题,服务端在接收到数据后,自动将utf-8转换成gbk,然后就把中文字符串后面的一个字节也加到串中,导致最后一个中文转换不正确,这个问题会是encodeURLComponent导致的吗?
2015-04-24 17:50
DCloud_UNI_FXY
你客户端也用gbk就行了吧。不让服务端utf8转gbk。
把你的页面文件编码换成gbk
页面meta换成gbk。
2015-04-24 17:56
水影鸣人 (作者)
回复 DCloud_UNI_FXY:客户端有好多页面,只需要换出问题的页面就可以是吗?
2015-04-24 17:57
DCloud_UNI_FXY
理论上是。前后端的编码最好保持一致。不要来回转编码
2015-04-24 17:59
ysf
这个怎么解决的呀?中文传参乱码,乱码。。。。。
2015-12-30 15:45