这个问题一直困扰了我们很久,今天找到了个解决方案,暂时先用着,以后再改善。方法如下:
html:
url:'..../***.do?parms1='+ encodeURI((encodeURI(param)));
为什么转两次?如果只有一个套那么转到action的结果类此这种编码:/䏿æµè¯3æä»¶å¤¹
java中解码:
传过来的参数如下形式:%C8%F8%C2%E5%B7%F2%BD%AB%BF%A8%CB%C0%C1%CB%B5%
然后通过decode()解码:
java.net.URLDecoder.decode(parms1,"UTF-8");
encodeURI()编码规则是:
1、英文字母、数字、部分基本标点直接显示。
2、"字节"的其他值以百分号%+两位十六进制数显示,比如空格,%20;
中文无论GBK还是UTF8都属于多字节,按规则2逐字节显示。
==============================================================
今天韩哥讲了另一个解决方案,比较好,不用encodeURI,不用解码:
直接将参数写在data参数中:
例如:
$.ajax({
url: '${base}/pms/frame/resource/deleteFile.do',
type: 'post',
dataType: 'json',
data: {index:index, resourceId:$('#resourceId'+index).val(), resourceName:$('#resourceName'+index).val()}
});
用这种方式就不会出现传中文参数乱码的情况了。
分享到:
相关推荐
在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的问题:即通过Ajax发送带有中文字符的数据时,后端接收到的数据出现乱码现象。...
至于Ajax中的乱码问题,主要指的是获取后台数据时,由于字符编码不一致导致的乱码现象。解决乱码问题,一般需确保前后端使用统一的字符编码格式,通常是UTF-8。在发送请求时,在HTTP请求头中指定字符编码,如: ```...
然后,这个带有时间戳的新URL会被用于Ajax请求,例如`$.get`函数,以确保每次都能从服务器获取最新的数据。 在服务器端,例如在`AJAXServer.java`中,可以跟踪请求的次数以验证是否正确处理了缓存。通过在会话中...
13.3.10、<c:url>标签 13.3.11、标签 13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1...
13.3.10、<c:url>标签 13.3.11、标签 13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1...
带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 ...
带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 ...
带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 ...
13.3.10、<c:url>标签 13.3.11、标签 13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1...
13.3.10、<c:url>标签 13.3.11、标签 13.4、国际化标签库 13.4.1、标签 13.4.2、标签 13.4.3、读取资源文件 13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1...