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的代码,显式声明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-11-08 19:00:54

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

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根本没有考

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" /> 如果

jquery向.ashx文件post中文乱码问题的解决方法_jquery

1.我的环境:vs2005,未装SP1补丁,不能创建Web应用程序,只能创建网站:jquery版本1.5.1 2.web.config中的相关配置 <globalization requestEncoding="gb2312" responseEncoding="gb2312"/> 3.jquery的Post数据的写法 复制代码 代码如下: $(document).ready(function (){ $("#btnSend").cl

解决3.01版的jquery.form.js中文乱码问题的解决方法_jquery

网上搜了很多方法,可能因为我用的这jquery.form.js是3.01版,也就是今年3月6日才发布的版本(汗...就是前天),所以普遍不太管用.至于低版本的是否管用,这个我没有去考证,但大部分还是不负责任的Copy Copy Copy .还有一些方法是在提交前对所有的值先编码,我觉得这个太麻烦,额外增加了不少的前端代码量,也就没有采取. 好吧,那还是自己来处理吧.首先我们要找到切入点,也就是解决问题的入口.既然我们是要对JS传递的数据进行编码,那么首先肯定要从数据的传递函数开始.我调用的是aj

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传递中文乱码的问题