jquery.ajax的url中传递中文乱码问题的解决方法

 本篇文章主要是对jquery.ajax的url中传递中文乱码问题的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

JQuery
 
JQuery默认的contentType:application/x-www-form-urlencoded 
 
这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1 
 
ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
 
JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。
 
而我们的UTF-8则可以解决这一问题。
 
最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。
 
1. 修改JQuery代码
 
只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。
 
修改用到的jquery文件:jquery-1.4.4.min.js
 
ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charset=UTF-8",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest}
 
2. Js代码:
 
代码如下:
function confirmcommit(){
 
    var wlCompany = $("#wlCompany").val();//这里含有中文
 
    var wlId = $("#wlId").val();
 
    var proposer = $("#proposer").val();
 
    if(confirm("确认要换货吗")){
 
$.ajax({
 
type:'POST',
 
url:'${pageContext.request.contextPath}/returnGoods/confrimExchangeGoods.do',
 
data:'wlCompany='+wlCompany+'&wlId='+wlId+'&proposer='+proposer, //直接传值
 
dataType:'text',
 
error:function(){
 
    alert("JQuery AJAX Error!");      
 
},
 
success:function(msg){
 
    alert(msg);
 
    return;
 
    if(msg=='换货成功'){
 
 document.location="${pageContext.request.contextPath}/orderItem/queryProduceItem.do?orderBusType="+${orderBusType};
 
    }
 
}
 
});
 
     }
 
 }
 
 
3 .Java代码:
 代码如下:
public ActionForward confrimExchangeGoods(ActionMapping mapping,
 
ActionForm form, HttpServletRequest request,
 
HttpServletResponse response) throws Exception {
 
log.info("确认换货 confrimExchangeGoods start...............");
 
response.setCharacterEncoding("UTF-8"); //这里要设置一下
 
String wlCompany = request.getParameter("wlCompany");
 
String wlId = request.getParameter("wlId");
 
String proposer = request.getParameter("proposer");
     .....
}
 
 

时间: 2024-10-20 15:39:15

jquery.ajax的url中传递中文乱码问题的解决方法的相关文章

jquery.ajax的url中传递中文乱码问题的解决方法_jquery

JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1 ISO8859-1,通常叫做Latin-1.Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符. JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题. 而我们的UTF-8则可以解决这一问题. 最终指需要修改JQuery的代码,显式

JQuery ajax 返回json时出现中文乱码该如何解决_AJAX相关

使用jQuery ajax调用的返回json,中文乱码问题 Js代码如下: $.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('获取数据失败!'); }, success: function(json){ jsObject = eval(json); } }); return j

JQuery ajax 返回json时出现中文乱码该如何解决

使用jQuery ajax调用的返回json,中文乱码问题 Js代码如下: $.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('获取数据失败!'); }, success: function(json){ jsObject = eval(json); } }); return j

jsp中 ajax的get请求的中文乱码问题的解决方法_JSP编程

一般Tocant 的url编码是iso-8859-1(查看tocat/conf/server.xml 中的Connector 节点没有写URIEncoding="xxxxxx") 如下: 复制代码 代码如下: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 如果

Zend Studio7中文乱码的终极解决方法

上一篇我介绍了PHP开发工具Zend Studio7入门使用教程,在使用过程中当我们新建(导入)的项目本身的编码是UTF8时,比如Wordpress,我们发现当使用zend studio打开PHP项目文件调试时变量等会出现中文乱码的问题,亦或者当你使用zend studio新建一个UTF8编码的PHP文件,打开时也会出现中文变成乱码的问题,这是由于zend studio的默认字符编码使用的是GBK造成的,那么zend studio中文乱码问题如何解决呢? 针对整个PHP项目调试或单个PHP文件使

GET方法URL中传递中文参数乱码的解决方法_JSP编程

1.在页面中对你的URL进行编码 使用------encodeURI(你要使用的中文参数值)如:...?username"+encodeURI("小甜甜") 2.在后台通过解码来接收该中文参数 使用----String name = new String(request.getParameter("username ").getBytes("iso8859-1"),"utf-8") 3.最好不要在URL中传递中文参数

通过地址栏传递中文乱码问题怎么解决?

问题描述 通过地址栏传递中文乱码问题怎么解决? 如果是表单提交的话,可以写个过滤器解决乱码,但是地址栏提交的话要怎么解决? 解决方案 客户端做url编码,服务器端得到rawurl,然后做url解码. 解决方案二: JSP地址栏传递中文字符乱码解决解决URL传递中的中文乱码问题解决get传递中文乱码的问题

php中json_encode处理gbk与gb2312中文乱码问题的解决方法_php技巧

本文讲述了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,具体方法如下: 1.json_encode()中文在gbk/gb2312中对中文返回为null $arr = array ( array ( 'catid' => '4', 'catname' => 'www.jb51.net', 'meta_title' => '' ) ); echo json_encode($arr); 运行结果: [{"catid":"4"

Android编程向服务器发送请求时出现中文乱码问题的解决方法_Android

本文实例讲述了Android编程向服务器发送请求时出现中文乱码问题的解决方法.分享给大家供大家参考,具体如下: 我们在andorid项目中通过get方式向服务器发送请求,其中url参数带有中文,将会产生乱码,乱码产生的原因有两种: 1. 在提交参数时,没有对中文参数进行URL编码 2. Tomcat服务器默认采用的是IOS8859-1编码(不支持中文)得到参数值 解决: 1. 进入android项目,在其中要提交参数的时候,对参数的值进行编码: 复制代码 代码如下: URLEncoder.enc