情况之一:没有编码URL
HTML 页面
var url = "./SuggestServlet?tagName="+document.getElementById('tagName').value;
做一个AJAX请求到SuggestServlet,参数是中文字符串,(传递到容器,由容器决定采用何种编码解析)
到Servlet之后取这个参数 String myparam = request.getParameter("tagName");
得到的是一个乱码字符串,request.getCharacterEncoding() 得到的是一个null值,这时候tomcat默认的是ISO-8859-1编码解析,这就是我们得到乱码的原因了。
解决办法:
myparam = new String(myparam.getBytes("ISO-8859-1"),"UTF-8"); 这样就能得到中文了
情况之二:使用javascript的encodeURI编码中文参数
HTML页面
var url = "./SuggestServlet?tagName="+encodeURI(document.getElementById('tagName').value);
同样是做一个AJAX请求到SuggestServlet,这时候参数被编码过了
到Servlet之后取这个参数 String myparam = request.getParameter("tagName");
得到的是UTF-8编码之后的字符串,其实不是乱码。
要获得中文字符,我们还需要再转换一次编码String decodingParam = URLDecoder.decode(myparam, "UTF-8");
---------------------------------------------------------------------------------------------------------------------
补充:做URL请求之前,应该使用JavaScript encodeURL(url)
---------------------------------------------------------------------------------------------------------------------
分享到:
相关推荐
在开发Java Web应用程序时,经常会遇到请求参数中的中文字符出现乱码的问题,尤其是在使用JSP时。这个问题通常发生在客户端通过HTTP GET或POST方法传递包含中文字符的参数到服务器,然后服务器端通过`...
String param = request.getParameter("myParam"); System.out.println("接收到的参数值: " + param); // 获取请求头 String contentType = request.getHeader("Content-Type"); System.out.println("Content-...
在JSP中,客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter()读取参数时,很简单消失中文乱码现象。这是因为HTTP协议默认使用ISO-8859-1编码,而中文字符在这个编码中无法...
return toChi(getHttpServletRequest().getParameter(name)); } / * 读取参数列表 - 修正了中文问题. */ public String[] getParameterValues(String name) { String values[] = getHttpServletRequest()....
String receivedKeywords = new String(request.getParameter("keywords").getBytes("ISO-8859-1"), "UTF-8"); 另一种是修改Tomcat的server.xml文件中的URIEncoding,例如:<Connector URIEncoding="UTF-8" ...> 3...
String userInput = (String) request.getParameter("input"); if (userInput != null) { userInput = Jsoup.clean(userInput, Whitelist.basic()); request.setParameter("input", userInput); } chain....
String param = URLDecoder.decode(request.getParameter("paramName"), "UTF-8"); ``` 总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符...
在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...
### JavaWeb乱码问题分析与解决 #### 一、引言 在JavaWeb开发中,乱码问题是开发者经常遇到的问题之一。它不仅会影响用户体验,还会对数据的正确性造成潜在威胁。本文将针对请求乱码及响应乱码两种情况进行深入剖析...
无论是GET还是POST方式提交,当使用`request.getParameter`获取参数时,如果没有进行正确的编码转换,都可能导致乱码。这是因为Tomcat服务器默认使用ISO-8859-1编码处理请求参数。 对于POST请求,一种解决方法是...
提供了ServletRequest过滤程序,重新构造对象内容,并有效规避request.getParameter()、request.getInputStream()冲突的问题,同时提供了对跨站脚本攻击XSS和SQL注入的过滤程序。
当在Tomcat服务器上处理包含中文的URL时,如果直接通过`request.getParameter()`获取参数,可能会因为默认的编码格式ISO-8859-1不支持中文,导致中文参数变成乱码。为了解决这个问题,开发者通常会采用以下步骤: 1...
servletRequest.setCharacterEncoding("GBK"); servletResponse.setContentType("text/html;charset=GBK"); return super.processPreprocess(servletRequest, servletResponse); } } ``` 在这个例子中,我们在`...
中文乱码问题解决方法 在 JSP 开发中,中文乱码问题是一个...keywords=new String(request.getParameter("keywords").getBytes("ISO-8859-1"),"UTF-8"); 解决方法二 修改 tomcat 的 server.xml 文件中 URIEncoding。...
- 解决方案A:在接收参数时手动进行编码转换,例如`String str = new String(request.getParameter("something").getBytes("ISO-8859-1"), "utf-8");` - 解决方案B:在请求开始时设置请求的字符集,`request.set...
在JSP(Java Server Pages)开发中,字符编码问题经常会导致中文或特殊字符显示为乱码,这在处理用户输入时尤为明显。本篇将详细探讨如何在JSP中解决POST方式和GET方式下产生的乱码问题,确保数据正确无误地传输与...
在JavaWeb开发中,尤其是涉及到JSP页面时,乱码问题常常困扰着开发者。这个问题的出现通常是由于字符编码不一致导致的,而过滤器(Filter)作为一种强大的工具,可以有效地帮助我们解决这个问题。本文将详细讲解如何...
### 解决Tomcat中文乱码问题 在使用Tomcat服务器部署Web应用时,经常会遇到中文乱码的问题。本文将详细探讨几种常见的乱码场景及其解决方案。 #### 一、JSP页面上的中文显示为乱码 **问题描述**:在JSP页面中直接...
### jspservlet取参数乱码问题分析 #### 一、问题本质及原因分析 在Java Web开发中,尤其是在处理中文参数时,经常会遇到一个常见问题——**jspservlet取参数乱码**。这一现象通常发生在当用户从客户端提交包含...
J2EE开发中遇到的乱码问题是一个常见的困扰,尤其是在处理中文字符时。本文将详细介绍如何解决这些问题,以一个基于Eclipse 3.3 + MyEclipse 6.0 + Tomcat 5.5的项目为例,该项目采用了Ext、Struts和Hibernate框架。...