`

request.getParameter(“参数名”) 中文乱码解决方法

阅读更多

Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢)

今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法

解决问题,先要研究问题,URL传中文参数为什么会出现乱码?

原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)

解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流

代码:

[java] 预览复制
  1. String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");  

这是通过转码的方式处理乱码问题,我们也可以通过Tomcat配置文件,设置URL编码集(URIEncoding)设置编码,这种方法也是一劳永逸的,

修改Tomcat/conf 目录下 server.xml

[xml] 预览复制
  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.     connectionTimeout="20000"   
  3.     redirectPort="8444"   
  4.     useBodyEncodingForURI="true" URIEncoding="UTF-8"/>  

重点在 userBodyEncodingForURIURIEncoding 这两个属性

下面来解释一下这两个属性的意义

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 request.getParameter中文乱码解决方法 在 Java Web 开发中,request.getParameter() 获取 URL 中文参数乱码是非常常见的问题。今天,我们将分享几个解决中文乱码的方法,以便大家可以参考。 问题分析 在 ...

    tomcat request.getParameter 乱码

    通过对Tomcat服务器的适当配置,可以有效地解决`request.getParameter`方法在处理中文参数时出现的乱码问题。具体而言,通过在`server.xml`文件中修改`Connector`元素的相关属性,以及在程序中设置合适的字符编码,...

    JSP用过滤器解决request getParameter中文乱码问题.docx

    总的来说,通过在过滤器中设置合适的字符编码,我们可以有效地解决JSP应用中请求参数中文乱码的问题。需要注意的是,选择哪种字符编码取决于你的应用需求,不同的编码可能会适用于不同的环境和用户群体。此外,如果...

    数据库测试test.sql

    // //解决POST表单的中文乱码问题 // request.setCharacterEncoding("utf-8"); // //接收method属性的值 // String methodName = request.getParameter("method"); // // //根据method属性的值调用相应的方法 // if...

    Request对象和乱码解决.doc

    例如,`Request.getParameter()`用于获取单个请求参数的值,`Request.getParameterValues()`用于获取多个同名参数的值,而`Request.getParameterNames()`则可以获取所有参数的名称。 2. 页面乱码: 页面乱码通常...

    extjs 前后台交互参数出现中文乱码问题的解决方法

    ### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...

    JSP用过滤器解决request getParameter中文乱码问题

    (1)客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter()读取参数时,很容易出现中文乱码现象。 (2)用过滤器解决request中文乱码问题。 (3)代码如下: package my; ...

    JSP利用过滤器解决request中文乱码问题.docx

    JSP中requestgetParameter中文乱码问题是经常遇到的问题,解决这个问题有多种方法,但利用过滤器解决request中文乱码问题是其中最有效的一种方法。本文将详细介绍如何使用过滤器解决JSP中request中文乱码问题。 ...

    多文件上传例子(解决中文乱码)

    多文件上传例子,彻底解决中文乱码问题了。总结中文乱码问题如下: 1、所有页面都用UTF-8。 2、写过滤器,设置request.setCharacterEncoding("UTF-8")。 3、javascript脚本里用encodeURI(str)。 4、适当的时候,在...

    jsp传值中文乱码问题解决方法示例介绍.docx

    本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要保持一致。如果服务器和客户端之间使用的字符编码不同,就可能出现乱码。例如,...

    java web学习_浅谈request对象中get和post的差异

    在输出结果中,我们可以看到 GET 方法的输出结果是通过 URL 传递参数的,而 POST 方法的输出结果是通过 Request 体来传输数据的。 4. 对比分析 在输出页面按下 F12 查看,我们可以看到 GET 方法的请求头中包含参数...

    几种常用解决jsp中文乱码的方案

    在表单传递过程中,Request.getParameter() 得到的参数,编码方式都是 ISO8859_1,直接按这种编码方法显示中文必然得到乱码。解决办法有两种: 方法一:在标记 &lt;html&gt; 之前,加上一句:&lt;%request.setCharacter...

    Tomcat中Get和Post出现乱码的解决办法

    1. 将 GET 请求改成 POST 请求,然后使用 request.setCharacterEncoding 方法设置编码,并使用 request.getParameter 方法直接获得中文请求参数。 2. 在 Servlet 中使用以下代码来得到中文请求参数:String name = ...

    URL传参数时中文乱码解决方法

    本文将深入探讨URL传参数时中文乱码的原因、影响以及如何有效解决这一问题,确保数据的准确性和系统的稳定运行。 ### URL传参数中文乱码原因 URL传参数时出现中文乱码的主要原因在于字符编码的不一致。通常,Web...

    中文乱码解决方法(已验证).docx

    本文将详细解析中文乱码产生的原因以及针对request和response的解决方案。 一、基础知识 1. 字符编码:GBK是一种兼容GB2312的汉字编码标准,包含GB2312的所有字符,但GB2312编码的数据不一定能正确通过GBK解码。 2....

    解决中文乱码问题-java

    在处理来自HTTP请求的参数时,`request.getParameter()`方法默认使用`ISO-8859-1`编码读取参数。如果参数中包含中文或其他非ASCII字符,且服务器端使用的是`GBK`或`UTF-8`等其他编码,就会导致乱码。 #### 2. 转换...

    ajax提交,后台中文乱码解决

    第二个示例展示了另一种解决中文乱码问题的方法——使用`data`属性来传递参数。这种方式下,参数作为JSON对象的一部分被传递,而不是作为URL的一部分。这意味着参数不会经过URL编码,因此避免了由URL编码引起的乱码...

    Ajax乱码小结

    #### 三、解决Ajax乱码的方法 1. **GET请求乱码解决方案**: - 客户端在发送GET请求前,可以使用`encodeURIComponent`函数对参数进行编码,确保参数的正确传输。 - 服务器端通过`request.getParameter()`获取到...

    java解决解决get中文乱码问题

    本文将详细介绍如何在Java中解决GET请求中文乱码问题,并提供一种有效的方法。 #### 一、理解GET请求中文乱码的原因 在HTTP协议中,GET请求参数通常被附加在URL后面,浏览器会自动对这些参数进行编码,这个过程...

    中文乱码问题处理方法.docx

    为了解决这些问题,本文总结了几种常见的中文乱码问题处理方法。 1. JSP页面显示乱码 JSP页面显示乱码是因为JSP文件的编码方式不同于浏览器的编码方式。解决办法是添加Page指令,例如:; charset=UTF-8" ...

Global site tag (gtag.js) - Google Analytics