今天来说一下request.getParameter()获取URL中文参数乱码的解决办法:
首先咱们先分析一下出现乱码的原因: Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)
解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流
代码:String str = new String(request.getParameter("参数名称").getBytes("iso-8859-1"), "utf-8");
这是通过转码的方式处理乱码问题,我们也可以通过Tomcat配置文件,设置URL编码集(URIEncoding)设置编码,这种方法也是一劳永逸的.
修改Tomcat/conf 目录下 server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444"
useBodyEncodingForURI="true"
URIEncoding="UTF-8"/>
重点在 userBodyEncodingForURI 和 URIEncoding 这两个属性.
useBodyEncodingForURI参数表示是否用request.setCharacterEncoding参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默认情况下,该参数为false。
URIEncoding参数指定对所有GET方式请求进行统一的重新编码(解码)的编码。
URIEncoding和useBodyEncodingForURI区别:
URIEncoding是对所有GET方式的请求的数据进行统一的重新编码,而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码。
相关推荐
java request.getParameter中文乱码解决方法 在 Java Web 开发中,request.getParameter() 获取 URL 中文参数乱码是非常常见的问题。今天,我们将分享几个解决中文乱码的方法,以便大家可以参考。 问题分析 在 ...
### Tomcat中request.getParameter出现乱码的问题解析及解决方法 #### 一、问题背景与现象描述 在Java Web开发过程中,经常会遇到通过`HttpServletRequest`对象的`getParameter`方法获取前端表单提交的数据时出现...
在开发Java Web应用程序时,经常会遇到请求参数中的中文字符出现乱码的问题,尤其是在使用JSP时。这个问题通常发生在客户端通过HTTP GET或POST方法传递包含中文字符的参数到服务器,然后服务器端通过`...
JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 ...
(1)客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter()读取参数时,很容易出现中文乱码现象。 (2)用过滤器解决request中文乱码问题。 (3)代码如下: package my; ...
在 Servlet/JSP 程序中,通过请求对象的 getParameter() 方法得到的字符串是以 ISO-8859-1 转换而来,这是导致乱码产生的原因之一。为了避免容器以 ISO-8859-1 的编码方式返回字符串,可以在获取请求参数值之前,...
在接收端解码参数,如`String keywords = new String(request.getParameter("keywords").getBytes("ISO-8859-1"), "UTF-8")`。 #### 三、Tomcat配置调整 对于使用Tomcat服务器的应用程序,可以通过以下两种方式来...
String fullname = new String(request.getParameter("fullname").getBytes("ISO8859_1"), "gb2312"); ``` 这段代码首先获取名为`fullname`的参数值,然后将其从ISO-8859-1编码转换为GB2312编码。需要注意的是,这里...
Request对象在Java Web开发中是...总的来说,Request对象是Java Web开发中的重要工具,正确处理乱码问题对于保证数据的准确传输至关重要。了解和掌握各种解决乱码的策略,有助于提升开发者在实际项目中的问题解决能力。
### Java传值中的乱码问题及最简易的解决方法 在Java Web开发中,经常会遇到一个令人头疼的问题:客户端向服务器传递数据时出现乱码。这种情况不仅会影响用户体验,还可能导致程序逻辑错误。本文将深入探讨Java传值...
String keyword = new String(request.getParameter("keyword").getBytes("iso-8859-1"), "utf-8"); ``` #### 3. 设置POST请求的字符编码 对于POST请求,应当在接收到请求前就设置好字符编码,这样可以确保请求体...
js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent... String qijuType= new String(request.getParameter( ("qijuType")).getBytes("ISO-8859-1"), "utf-8");
例如,使用`request.getParameter("params")`获取参数时,如果请求时的编码和服务器端解析的编码不一致,就会出现乱码。在本例中,服务端代码使用了`StringEscapeUtils.unescapeJava`方法进行了解码尝试,该方法可能...
Java Web 学习之 Request 对象中 GET 和 POST 的差异 摘要:本文将对 Java Web 中 Request 对象中 GET 和 POST 方法的差异进行分析和比较,通过代码示例和输出结果,展示 GET 和 POST 方法的不同之处,并分析其优...
### Java乱码问题详解与解决方案 #### 一、问题背景 在Java开发过程中,尤其是在处理中文字符时,经常遇到字符编码不一致导致的乱码问题。由于Java默认使用Unicode编码,而在中国大陆地区,常见的字符集为GB2312...
### Java解决GET请求中文乱码问题详解 在Java Web开发中,经常遇到的一个问题是处理GET请求中的中文参数时出现乱码。这个问题主要是因为浏览器发送GET请求时,参数默认使用ISO-8859-1编码格式,而服务器端通常采用...
在IT领域,尤其是在Java开发中,遇到中文乱码问题是相当常见的。这主要涉及到字符编码的处理,如果在数据传输、存储或显示过程中没有正确地指定或转换编码,就容易出现乱码现象。以下是对如何在Java中解决中文乱码...
### Java中文乱码分析 #### 一、概述 在Java Web开发中,中文乱码问题是一个常见的技术难题,尤其在处理HTTP请求时尤为突出。本文将深入探讨HTTP请求中的中文乱码现象,并提供相应的解决方案。 #### 二、HTTP请求...
如`encodeURIComponent(encodeURIComponent("字段"))`在服务器端应使用`URLDecoder.decode(request.getParameter("字段"), "utf-8")`进行解码。 3. **HTTP请求乱码**:当接收HTTP请求参数时,可能会遇到乱码。如果...