由于我们的系统是GBK编码,在使用jquery ajax传递中文时,在后台action中乱码(该原因是由于jquery编码为UTF-8产生的),使用encodeURI等均在后台中无法转成正常中文。使用escape解决此问题,但是需要自行在后台解码(重写js unescape方法),解码方法如下的unescape方法。
jquery:
function applySecKill() {
var userName = $("#userName").val();
var mobile = $("#mobile").val();
$.ajax({
url: "/apply/apply.do",
type: "post",
data: {'userName': escape(userName), 'mobile': mobile success: function(data, status) {
if(data.indexOf("|")>=0) {
var arr=new Array();
var arr=data.split('|');
var obj = document.getElementById("apply");
obj.innerHTML=arr[0]+",报名成功";
alert(arr[1]);
window.location.reload();
} else {
alert(data);
}
}
});
}
public class Escape {
public static String unescape(String src) {
if (src == null)
return null;
StringBuffer tmp = new StringBuffer();
tmp.ensureCapacity(src.length());
int lastPos = 0, pos = 0;
char ch;
while (lastPos < src.length()) {
pos = src.indexOf("%", lastPos);
if (pos == lastPos) {
if (src.charAt(pos + 1) == 'u') {
ch = (char) Integer.parseInt(src
.substring(pos + 2, pos + 6), 16);
tmp.append(ch);
lastPos = pos + 6;
} else {
ch = (char) Integer.parseInt(src
.substring(pos + 1, pos + 3), 16);
tmp.append(ch);
lastPos = pos + 3;
}
} else {
if (pos == -1) {
tmp.append(src.substring(lastPos));
lastPos = src.length();
} else {
tmp.append(src.substring(lastPos, pos));
lastPos = pos;
}
}
}
return tmp.toString();
}
}
分享到:
相关推荐
然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...
在使用jQuery的AJAX方法进行数据交互时,有时会遇到中文字符乱码的问题。这是因为浏览器、服务器和前端之间编码不一致导致的。本文将详细解释这个问题,并提供有效的解决方案。 首先,我们要理解AJAX(Asynchronous...
在使用jQuery的Ajax功能进行数据交互时,可能会遇到中文参数乱码的问题。这通常是由于服务器与客户端之间...遵循以上步骤,可以有效地避免`jQuery Ajax`在传递中文参数时出现的乱码问题,保证数据的正常传输和解析。
本文将详细解释如何解决jQuery Ajax向Servlet传递参数时出现的乱码问题。 首先,我们需要理解乱码产生的原因。乱码通常发生在以下几个环节: 1. **JSP页面的编码设置**: JSP页面的编码至关重要,确保它正确地...
JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。 而我们的UTF-8则可以解决这一问题。 最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可...
总结起来,解决JQuery.ajax传递中文参数乱码问题的核心在于: 1. 在`$.ajax`设置中指定`contentType: "application/x-www-form-urlencoded; charset=UTF-8"`。 2. 服务器端的页面响应编码(如ASP.NET的`...
在使用jQuery Uploadify插件时,用户可能会遇到“scriptData”参数中的中文数据出现乱码的问题。这通常是因为字符编码不一致导致的。Uploadify是一个非常流行的文件上传插件,它允许用户通过异步方式上传文件,同时...
本示例将涵盖如何使用jQuery实现自动补全功能,包括解决中文乱码问题以及常用属性配置。 ### 1. jQuery自动补全基本原理 jQuery 自动补全基于jQuery库,通过监听用户在输入框中的输入事件,实时查询预定义的数据集...
在使用JQuery的ajax方法调用返回JSON格式数据时,如果遇到中文字符显示乱码的情况,这是一个常见的问题,尤其在前后端交互过程中,因为编码格式不一致导致的字符显示错误。为了解决这个问题,我们需要确保前后端在...
在Java Web开发中,Ajax技术常常用于实现页面的异步更新,但遇到中文乱码问题时,会导致数据传递出现错误。以下是一些解决Ajax中文乱码问题的方法: 1. **方法一:使用`encodeURI`编码** 当使用jQuery的Ajax方法...
总结来说,当遇到JQuery ajax传递中文参数时出现乱码问题,开发者需要在ajax请求中显式声明contentType为`application/x-www-form-urlencoded;charset=UTF-8`。这样,无论页面编码是什么,中文数据都能被正确编码和...
在使用Ajax传递中文字符时,推荐使用UTF-8编码,这样可以避免出现乱码的问题。 5.关于HTML页面的编码设置:在HTML页面中,可以通过meta标签设置页面的编码格式,例如;charset=UTF-8"/>,这样可以保证页面中的中文...
总结来说,解决AJAX和JS传中文乱码问题的关键在于理解各种编码方式,以及在客户端和服务器之间正确地转换和传递数据。通过合理运用JavaScript的"escape"、"encodeURIComponent"等函数,并确保统一的编码标准,我们...
在使用Asp进行Web开发过程中,通过JQuery的AJAX方法提交表单数据时,中文字符很容易出现乱码问题。为了解决这个问题,我们可以使用Asp自带的unescape()和escape()函数来进行编码和解码操作,以此确保数据在客户端与...
在使用jQuery的AJAX方法(如$.ajax()或$.post())进行数据提交时,可能会遇到在某些浏览器中数据乱码的问题。这通常与字符编码有关。以下是解决这一问题的一些方法: 1. 统一编码:确保文件编码、数据库编码和网页的...