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-24 16:23:05

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

spring mvc中关于url中传递中文乱码的解决方法

在传值过程中,也是乱码出现的频繁地.先不说到底是什么场景了,通常常用的方案有如下几个 配置指定的filter <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> <filter-name>springUtf8Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-

js的url中传递中文参数乱码,如何获取url中参数问题

一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript”> function send(){ var url = "test01.html"; var userName = $("#userName").html(); window.open(encodeURI(url + "?userName="

CentOS中文乱码问题的解决方法

一.CentOS系统访问 xxx.cn ,发现中文乱码于是用以前的方式:# yum -y install fonts-chinese # yum -y install fonts-ISO8859 CentOS系统安装完成后,重新启动即可. 二.终端. gedit 显示乱码# vim /etc/sysconfig/i18n 将:LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 修改原内容为: LANG="zh_CN

windows下mysql中文乱码, 配置解决方法

内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内里配置: [mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8 如图: 修改完成后重启MySQL服务:(右键重新启动) 完成: 原文地址:ht

详解Linux中文乱码问题终极解决方法

详解Linux中文乱码问题终极解决方法 方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030 该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码 例: cd ~ vim .bash_profile 直接写入 export LANG=zh_CN.GB18030 之后重启 就ok了 方法二: 修改/etc/sysconfig/i18n文件 #LANG=

Extjs4.2 ajax请求url中传中文參数乱码问题

今天有个需求须要在url中传入中文參数.结果在后台取得时出现乱码,怀疑可能是编码问题.上网查询了资料,试了几种办法.发现有一种可行,记录在此,以便查阅. url中用encodeURI 进行2次编码: Ext.Ajax.request({ url:"updateadminuser.do?"+userid+"&uname="+encodeURI(encodeURI(uname)), success:function (response) { store.load

CentOS中的中文乱码问题的解决

在使用CentOS系统时,安装的时候可能你会遇到英文的CentOS系统,在这中情况下安装CentOS系统时是默认安装(即英文).安装完毕后,出现 的各种中文乱码.那么,我们如何解决这种问题呢. 一.CentOS系统访问 g.cn ,发现中文乱码. 于是用以前的方 式:yum -y install fonts-chineseCentOS系统安装后,还是不能显示中文字体.我使用 gedit 编辑源码,其中文注释也为乱码. 后来,终于找到以下方法可以解决,需要两个中文支持的包:fonts-chines

URL地址中的中文乱码问题的解决

引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. 1.  问题的引出 在Restful的服务设计中,查询某些信息的时候,一般的URL地址设计为: get /basic/service? keyword=历史 , 之类的URL地址. 但是,在实际的开发和使用中,确是有乱码情况的发生,在后台的读取keyword信息为乱码,无法正确读取. 2. 乱码是如

eclipse中生成的html存在中文乱码问题的解决方法

最近在做测试报告生成时遇到了个中文乱码的问题,虽然在html创建过程中设置了编码格式htmlReporter.config().setEncoding("UTF-8");但是生成的html打开依旧乱码. 下面说一下解决方法,其实是eclipse选择中文版本时,很多默认编码格式都设置为GBK了,如下所示: 这里我们选择其他中的UTF-8,如下图所示: 然后点击右下角的===>"应用"按钮进行保存,为了保险起见我又在"内容类型"中的html中设