ajax返回数据中文乱码(为什么利用AJAX传回来的值是乱码)

:暂无数据 2026-07-04 13:50:04 1

ajax返回数据中文乱码(为什么利用AJAX传回来的值是乱码)

大家好,如果您还对ajax返回数据中文乱码不太了解,没有关系,今天就由本站为大家分享ajax返回数据中文乱码的知识,包括为什么利用AJAX传回来的值是乱码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

为什么利用AJAX传回来的值是乱码

这是由于客户端请求与服务器端相应编码不一致。
1.在你的页面上,你需要指定页面的编码,如:
***隐藏网址***
2.在你的服务器端也要指定输出编码,如:
response.charset = "utf-8";
3.你的前端页面和后台处理的页面字符编码必须同样为utf-8。
这样一般就不会乱码了,如果还乱,那么你就用escape()将请求进行编码后再发送,而后台也使用unescape()将请求进行解码后再处理就可以了。
输出时候的中文呢?在Action里面。
如果是html页面:
response.setContentType("text/html") ;
response.setCharacterEncoding("utf8") ;//这句会对输出字符进行设置
如果是xml,把text/html改成text/xml就OK了!
注:个人认为
response.setContentType("text/html; charset=UTF-8");
这方法不太保险,ContentType属性是针对页面的,如果是在当前页面输出就可以。但跳转或者传输数据的话会出问题!

ajax,struts1.3乱码问题

你的这个乱码是因为你使用了POST造成的,如果你的 data中含有中文字符的话,需要用JS把你的URI转码 :
data=encodeURI(data);
data=encodeURI(data);
XMLHttpReq.setrequestheader("cache-control", "no-cache");
XMLHttpReq.setrequestheader("content-type", "application/x-www-form-urlencoded");
据说需要两次。
另外,在服务端还要进行转码。
String uname=java.net.URLDecoder.decode(request.getParameter("uname"),"UTF-8");
楼主先试试这些方法吧,我以前也遇到过这个问题,困惑了好久,但是最后还是解决了。
我就是用的这个方法,祝你成功!

在asp中,ajax接受的是乱码怎么办,var b =xmlHttpRequest.responseText;

ajax 默认的编码方式是UTF-8 中文乱码是常出现的问题。你可以在进行参数传送的时候先用javascript 的encodeURIComponent 函数对编码进行处理 进行编码处理。

jquery插件中时间插件出现中文乱码怎么办

  • 把jquery插件文件编码格式改变一下,应该跟你项目的编码不一致

  • 修改编码
    都为UTF或者GBK

  • 插件格式改为UTF-8

  • 1、使用$.ajax出现的中文乱码的解决方案:
    var _realname = $("input").val();
    var termcourseId = ’《%=termid%》’;
    var classId = ’《%=classid%》’;
    var url = "/addressbook/studentListNoPage.do";
    //var dataUrl = "formMap.TERMCOURSE_ID="+termcourseId+"&formMap.CLASS_ID="+classId+"&formMap.IS_ONLINE=all&formMap.REALNAME="+_realname;
    $.ajax({
    type: "POST",
    url: url,
    dataType:"json",
    data: {
    "formMap.TERMCOURSE_ID":termcourseId,
    "formMap.CLASS_ID":classId,
    "formMap.IS_ONLINE":"all",
    "formMap.REALNAME":encodeURI(_realname)
    },
    contentType: "application/x-www-form-urlencoded; charset=utf-8",
    success: function(data){
    data = eval(data);
    var html = "";
    $("#allUnselectedUser").html(html);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown){
    alert(textStatus);
    }
    });
    其中当使用dataUrl中的&方式提交时,无论前台是使用encodeURI或者encodeURIComponent又或者escape把中文转码,提交到Action中都是乱码,并不是想要的%e6%b1%89%e5%ad%97这种转后编码。即使加上contentType也不行。
    把dataUrl中的&方式提交修改为data:{name:value}的方式提交即可。
    在Action中使用URLDecoder.decode(realname,
    "UTF-8")来转码即可转换为中文了。使用UTF-8是因为Jquery的提交方式默认为UTF-8,即使把contentType中的charset修改其他,例如GBK,后台也把UTF-8修改GBK,都不能正确转换。

为什么Form表单提交不是乱码,而ajax提交会是乱码

form表单提交就不说了,ajax提交表单:
JavaScript code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var data = $("#myForm").serialize();
//实际上serialize()方法会将中文编码一次,提交时再用encodeURI方法将data再编码一次:
$.ajax({
async : false,
type : "post",
dataType : "json",
url : url + "&" + encodeURI(data),
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success : function(result) {
reflashTable(result);
},
error : function(XMLHttpResponse) {
alert("出错了。");
}
});
服务器端:
Java code
?
1
2
3
4
5
6
7
public void setPlayername(String playername) {
try {
this.playername = playername == null ? null : java.net.URLDecoder.decode(playername.trim(), "UTF-8");
} catch (UnsupportedEncodingException e) {
System.out.println("setPlayername decode utf-8 Error!");
}
}
没错这样是能够正常显示的。
可我就搞不明白了,serialize()之后的值实际上与java.net.URLEncoder.encode()的值是相等的,如果不进行第2次编码,那么tomcat在接收时decode一次后理应是正确的值,为什么就成乱码了呢?而为什么使用form表单提交却不用encode服务器也能正确接收?
按上面应该是可以的,我没去试试。
var data = $("#form").serialize();
这个只是把Form值取出来而以,如:playerid=1234&age=20&nickname=Hello&realname=1233中国
我就自己修改了data的值,编码一下:
data = encodes(data,"nickname,realname");
/** encodes方法 */
function encodes(data, names) {
names = names.split(",");
for (var i=0; i《names.length; i++) {
if (names != null) {
var start = data.indexOf(names);
var endStr = data.substring(start);
var end = endStr.indexOf("&");
if (end == -1)
end = endStr.length;
var mid=endStr.indexOf("=")+1;
var value=endStr.substring(mid, end);
//var nameValue = endStr.substring(0, end);
var nameValue = names + "=" + value;
nameValue = encodeURI(nameValue);
data = data.substring(0,start)+nameValue+endStr.substring(end);
} else {
alert(names + "为空");
}
}
return data;
}
这样也已经把问题解决了。其实这些是JQuery 早就帮我们做好了吧。。。。。

如何解决JQuery ajaxSubmit提交中文乱码

JQuery ajaxSubmit提交中文乱码解决方法:
设置contentType: "application/x-www-form-urlencoded; charset=utf-8",进行编码设置;
原因:1.检查页面显示编码和文件的编码;
2.查看传输过程中是否编码改变
JQuery的AJAX提交,会将要提交的数据进行编码,使用encodeURIComponent在js中处理数据。因此,无论是 Firefox或者IE,提交的数据都是一致的,都是UTF-8编码后的数据。
备注:编码类的问题检查主要方面有:页面设置显示编码,文件编码,浏览器编码等

jquery ie6 ajax乱码问题

如果前端页面是content="text/html; charset=gb2312"
那么输出内容的页面加上response.ContentType="text/html;charset=gb2312"
不管设置返回的是html还是json什么的

关于ajax返回数据中文乱码,为什么利用AJAX传回来的值是乱码的介绍到此结束,希望对大家有所帮助。

ajax返回数据中文乱码(为什么利用AJAX传回来的值是乱码)

本文编辑:admin

更多文章:


send out用法及例句(send out是什么意思)

send out用法及例句(send out是什么意思)

各位老铁们好,相信很多人对send out用法及例句都不是特别的了解,因此呢,今天就来为大家分享下关于send out用法及例句以及send out是什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 20:30

全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

大家好,关于全球新冠肺炎疫情背景下航运发展很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年9月7日 17:10

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

大家好,关于matlab求解带字母参数方程组很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数的知识点,相信应该可以解决大家的一些困惑和问题,

2026年9月7日 16:30

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

本篇文章给大家谈谈oracle中的循环语句,以及下面哪个不是oracle程序设计中的循环语句 a for对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 15:30

多表查询怎么做(Excel技巧:如何多表同步筛选)

多表查询怎么做(Excel技巧:如何多表同步筛选)

各位老铁们好,相信很多人对多表查询怎么做都不是特别的了解,因此呢,今天就来为大家分享下关于多表查询怎么做以及Excel技巧:如何多表同步筛选的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 15:10

服装店网站网页设计(服装网站建设目标设计要看甲方)

服装店网站网页设计(服装网站建设目标设计要看甲方)

“服装店网站网页设计”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看服装店网站网页设计(服装网站建设目标设计要看甲方)!

2026年9月7日 14:10

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

大家好,电脑里2个系统怎么删除一个相信很多的网友都不是很明白,包括电脑开机显示有两个系统,如何删除一个也是一样,不过没有关系,接下来就来为大家分享关于电脑里2个系统怎么删除一个和电脑开机显示有两个系统,如何删除一个的一些知识点,大家可以关注

2026年9月7日 12:20

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

大家好,今天小编来为大家解答以下的问题,关于苹果手机代码大全,恢复更新固件iOS未知错误代码解决大全这个很多人还不知道,现在让我们一起来看看吧!

2026年9月7日 10:20

scrollthrough意思(“scroll”是什么意思)

scrollthrough意思(“scroll”是什么意思)

今天给各位分享“scroll”是什么意思的知识,其中也会对“scroll”是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 08:00

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

本篇文章给大家谈谈怎么激活keygen,以及注册机如何激活cad2008一个简单激活cad2008的方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站

2026年9月7日 06:30

最近更新

热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表