在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢)
今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法
解决问题,先要研究问题,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参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码
还有一种方法,通过重写getParameter方法,设置解码/方式来解决乱码问题,请参照:Java防止xss攻击 修改。
参考:https://wuzhuti.cn/1129.html,http://blog.csdn.net/kalision/article/details/46441081/
相关推荐
java request.getParameter中文乱码解决方法 在 Java Web 开发中,request.getParameter() 获取 URL 中文参数乱码是非常常见的问题。今天,我们将分享几个解决中文乱码的方法,以便大家可以参考。 问题分析 在 ...
通过对Tomcat服务器的适当配置,可以有效地解决`request.getParameter`方法在处理中文参数时出现的乱码问题。具体而言,通过在`server.xml`文件中修改`Connector`元素的相关属性,以及在程序中设置合适的字符编码,...
总的来说,通过在过滤器中设置合适的字符编码,我们可以有效地解决JSP应用中请求参数中文乱码的问题。需要注意的是,选择哪种字符编码取决于你的应用需求,不同的编码可能会适用于不同的环境和用户群体。此外,如果...
// //解决POST表单的中文乱码问题 // request.setCharacterEncoding("utf-8"); // //接收method属性的值 // String methodName = request.getParameter("method"); // // //根据method属性的值调用相应的方法 // if...
例如,`Request.getParameter()`用于获取单个请求参数的值,`Request.getParameterValues()`用于获取多个同名参数的值,而`Request.getParameterNames()`则可以获取所有参数的名称。 2. 页面乱码: 页面乱码通常...
### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...
(1)客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter()读取参数时,很容易出现中文乱码现象。 (2)用过滤器解决request中文乱码问题。 (3)代码如下: package my; ...
JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 ...
多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...
本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要保持一致。如果服务器和客户端之间使用的字符编码不同,就可能出现乱码。例如,...
在输出结果中,我们可以看到 GET 方法的输出结果是通过 URL 传递参数的,而 POST 方法的输出结果是通过 Request 体来传输数据的。 4. 对比分析 在输出页面按下 F12 查看,我们可以看到 GET 方法的请求头中包含参数...
在表单传递过程中,Request.getParameter() 得到的参数,编码方式都是 ISO8859_1,直接按这种编码方法显示中文必然得到乱码。解决办法有两种: 方法一:在标记 <html> 之前,加上一句:<%request.setCharacter...
1. 将 GET 请求改成 POST 请求,然后使用 request.setCharacterEncoding 方法设置编码,并使用 request.getParameter 方法直接获得中文请求参数。 2. 在 Servlet 中使用以下代码来得到中文请求参数:String name = ...
本文将深入探讨URL传参数时中文乱码的原因、影响以及如何有效解决这一问题,确保数据的准确性和系统的稳定运行。 ### URL传参数中文乱码原因 URL传参数时出现中文乱码的主要原因在于字符编码的不一致。通常,Web...
本文将详细解析中文乱码产生的原因以及针对request和response的解决方案。 一、基础知识 1. 字符编码:GBK是一种兼容GB2312的汉字编码标准,包含GB2312的所有字符,但GB2312编码的数据不一定能正确通过GBK解码。 2....
jsp中文乱码 jsp mysql 乱码的解决方法 jsp 中文乱码是指在使用 JSP 页面将中文数据添加到 MySql 数据库中或从 mysql 中读取中文时出现乱码的问题。这是由于字符编码不全造成的。因此,了解乱码的产生过程是解决...
在处理来自HTTP请求的参数时,`request.getParameter()`方法默认使用`ISO-8859-1`编码读取参数。如果参数中包含中文或其他非ASCII字符,且服务器端使用的是`GBK`或`UTF-8`等其他编码,就会导致乱码。 #### 2. 转换...
第二个示例展示了另一种解决中文乱码问题的方法——使用`data`属性来传递参数。这种方式下,参数作为JSON对象的一部分被传递,而不是作为URL的一部分。这意味着参数不会经过URL编码,因此避免了由URL编码引起的乱码...
#### 三、解决Ajax乱码的方法 1. **GET请求乱码解决方案**: - 客户端在发送GET请求前,可以使用`encodeURIComponent`函数对参数进行编码,确保参数的正确传输。 - 服务器端通过`request.getParameter()`获取到...
本文将详细介绍如何在Java中解决GET请求中文乱码问题,并提供一种有效的方法。 #### 一、理解GET请求中文乱码的原因 在HTTP协议中,GET请求参数通常被附加在URL后面,浏览器会自动对这些参数进行编码,这个过程...