jquery ajax传值,get方式后台中文乱码

通过jquery ajax传值,后台出现中文乱码,经过一番摸索后发现原来客户端浏览器通过get方式传递到项目后台时,编码格式是ISO-8859-1,需要我们在后台经过转码才能正常使用。方法如下:

str = new String(str.getBytes("ISO-8859-1"), "utf-8");

需要注意的是,如果在本地测试,后台解析的默认字符编码是gb2312,则不需转码,因此代码修证为:

if(!StringUtil.getEncoding(str).equalsIgnoreCase("GB2312")){

str = new String(str.getBytes("ISO-8859-1"), "utf-8");

}

StringUtil类如下:

package com.hwcampus.common;

public final class StringUtil {
	public static boolean isEmpty(String str) {
		if (str != null && !str.trim().isEmpty()) {// 如果字符串不为null,去除空格后值不与空字符串相等的话,证明字符串有实质性的内容
			return false;//不为空
		}
		return true;//为空
	}

	private StringUtil() {

	}

/**
 * 判断字符串的编码类型
 * @param str
 * @return
 * author htc
 */
public static String getEncoding(String str) {      
    String encode = "GB2312";      
    if(isEmpty(str)) return "";
   try {      
       if (str.equals(new String(str.getBytes(encode), encode))) {      
            String s = encode;      
           return s;      
        }      
    } catch (Exception exception) {      
    }      
    encode = "ISO-8859-1";      
   try {      
       if (str.equals(new String(str.getBytes(encode), encode))) {      
            String s1 = encode;      
           return s1;      
        }      
    } catch (Exception exception1) {      
    }      
    encode = "UTF-8";      
   try {      
       if (str.equals(new String(str.getBytes(encode), encode))) {      
            String s2 = encode;      
           return s2;      
        }      
    } catch (Exception exception2) {      
    }      
    encode = "GBK";      
   try {      
       if (str.equals(new String(str.getBytes(encode), encode))) {      
            String s3 = encode;      
           return s3;      
        }      
    } catch (Exception exception3) {      
    }      
   return "";      
}  

}
时间: 2024-11-06 03:31:37

jquery ajax传值,get方式后台中文乱码的相关文章

jquery.ajax的url中传递中文乱码问题的解决方法

jquery.ajax的url中传递中文乱码问题的解决方法 JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1 ISO8859-1,通常叫做Latin-1.Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符. JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题. 而我们的UTF-8

jQuery Ajax url使用方式

jQuery Ajax的使用场景: 页面需要通过后台逻辑,但只需要局部刷新以显示新的内容. jQuery Ajax url使用方式1.servlet方式: 需要在struts.xml中写一个action,跳转地址写servlet; 需要重写init方法(为了使用spring注入的bean); 设置响应编码response.setContentType("text/html; charset=UTF-8"); 使用request.getParameter()接收参数; 使用respons

jQuery Ajax传值给Servlet,在Servlet里接受参数乱码的解决方法

最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如下: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/ht

Ajax提交后台中文乱码问题

今天项目组同事反映,之前有一个正常的请求,今天突然后台获取参数的值出现了中文乱码,怀疑是之前更新jar包所致,笔者仔细想了想更新的内容,仿佛没有涉及到编码的变更啊,然后开始排查,首先后台加了强制以utf-8解析请求的过滤器,web服务器的编码也改成了utf-8,前台页面也是utf-8编码,但是就是有个页面的请求出现了乱码:经过对比发现,所有采用了通用ajax工具提交的请求,都会有这个问题,后来发现,原来上次更新为了解决跨域的问题,在通用的底层代码中加入了content-type参数,默认值设为了

【中文乱码】jsp页面传值到后台中文乱码情况.

作为一名程序员,在项目中偶尔会遇到jsp传到后台出现中文乱码而不知所措.下面将讲解出现中文乱码的几种情况. 一.jsp页面没有设置编码格式, 二,后台没有在web.xml中字符编码过滤器, 三,在ajax提交的时候用get提交, 四,数据库连接的时候也可以试着加上字符编码, 五,所有的前台和后台字符编码必须一致.

jQuery AJAX实现调用页面后台方法

1.新建demo.aspx页面.2.首先在该页面的后台文件demos.aspx.cs中添加引用. using System.Web.Services; 3.无参数的方法调用. 大家注意了,这个版本不能低于.net framework 2.0.2.0已下不支持的.后台代码: [WebMethod] public static string SayHello() { return "Hello Ajax!"; } JS代码: $(function() { $("#btnOK&qu

Spring Ajax中get、post 中文乱码问题.

博客刚审核通过,想发第一篇博客,刚好同事遇到一个小问题. 在spring MVC中使用jquery .ajax();方法的时候,出现中文乱码. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean 

关于页面传参到后台中文乱码的处理

有时候,我们在前端页面像后台发送请求的时候需要携带的参数是中文,可能会出现乱码,下面是处理中文乱码的方法: JSP/HTML 中的请求: user/getUsersByName.do?name=encodeURIComponent(name); 用 encodeURIComponent 对中文进行编码: JAVA后台代码: String userName= new String(request.getParameter("entityName").getBytes("ISO-

GET&amp;POST方式解决中文乱码问题

在学习的过程中,实时总结觉得是非常重要的,即使是再简单的问题,当你积累的多了,不要总是犯一些简单的错误,实时总结,你会发现进步就一天天成长起来了. 中文乱码有几方面,页面展示,request和response过程中,Web服务器编码的问题. 1,如果编写中文的页面,首先将Tomcat的server.xml中的配置加上 <Service> <Connector URIEncoding="UTF-8"> ... </Connector> </Ser