- 论坛徽章:
- 0
|
jquery ajax 中文乱码处理
ajaxjqueryencodeuricomponentgbk
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;
- }
复制代码 |
|