六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 15|回复: 0

jquery ajax 中文乱码处理

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-1-29 10:34:19 | 显示全部楼层 |阅读模式
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;
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表