jquery ajax 中文乱码处理

jquery在发送ajax数据时,使用了js的内置方法encodeURIComponent对数据进行了处理,该方法的作用是把数据
以UTF-8的方式编码,所以页面的编码如果是GBK或gb2312时候,服务端接收就会出现乱码。

解决方法:
---------------------------------------------------------------
客户端(jsp页面)

在传递数据前对数据再一次进行encodeURIComponent编码
var m_name = $.trim($("#m_name").val());
m_name = encodeURIComponent(m_name); //对中文进行处理
var map = {
m_id:$('#m_id').val(),
name:m_name
};

$.post("EditMer.do",map,function(data){
//..... (根据服务器返回数据进行相关操作)
});

---------------------------------------------------------------

服务端(java程序)
对含有中文的字符串进行解码

String name = request.getParameter("name"); //商品名称
name = Utils.decodeJqueryAjaxStr(name);


/**
* 将jquery ajax 中文字符串 解码
* @param str 需要解码的字符串
* @return
*/
public static String decodeJqueryAjaxStr(String str){

if(str==null || str.equals("")){
return "";
}
str = str.trim();
try {
str = java.net.URLDecoder.decode(str, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

return str;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值