解决思路:
1、在页面对乱码汉字进行编码;
2、在服务端进行解码;
页面编码具体实现
页面编码有两种方式:js方式,java方式。
js方式:
var nickname=$('#nickname').val();
nickname=encodeURIComponent(nickname);//默认utf-8
java方式:
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里"," utf-8 ")%>">点击这里</a>
服务端解码具体实现
解码方式有两种,修改tomcat的server.xml配置,程序解码。
修改tomcat的server.xml配置
<Connector
port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
<!--在里边加上这个参数-->
URIEncoding=" utf-8 "
/>
注意这里配置的字符集要和页面的编码字符集一致
程序解码
String nickname=new String(request.getParameter("nickname").getBytes("ISO-8859-1"),"utf-8 ");
为什么会这样呢,造成这种现象的原因是Tomcat对get和post两种提交方式的处理方法不一样造成的。自从Tomcat5.x开始,GET和POST方法提交的信息,Tomcat采用了不同的方式来处理编码,对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的iso-8859-1编码。而GET请求则不同,Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码
分享到:
相关推荐
这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。 一、JSP 页面设置字符编码 在 JSP 页面中,可以使用 page 指令设置页面的字符编码。例如,在 ...
在 JSP 程序中,当我们使用 GET 或 POST 方法提交中文信息时,可能会出现乱码问题。这是因为 Tomcat 对于 GET 和 POST 方法的编码处理方式不同。对于 POST 方法,Tomcat 会使用 request.setCharacterEncoding 方法...
当通过POST方式提交表单数据到JSP或Servlet时,如果接收的中文参数值乱码,可以在处理请求的代码之前,使用`request.setCharacterEncoding("GBK")`来设置请求参数的编码格式。这通常应在读取参数之前进行,以确保...
解决办法 通过 request.setCharacterEncoding("gb2312") 对请求进行统一编码,就实现了中文的正常显示。这是其中的一种作法,当页面较少时还好,如果页面较多,每添加新的页面就要加上这句话,所以可以采用过滤器来...
如果用户通过表单提交中文数据,可能会出现乱码。此时可以通过在代码中加入`request.setCharacterEncoding("GBK")`来解决问题: ```jsp request.setCharacterEncoding("GBK"); String str = request.getParameter...
解决办法 1、在后台获取时采用 String b = new String(request.getParameter("name").getBytes("iso-8859-1")); 2、 String a = new String(request.getParameter("name").getBytes("iso-8859-1"),"GBK")...
Android Retrofit 中文乱码问题的解决办法 使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理: 解决: 1.GET请求改成POST; 2.参数Field改成Query 3.加上@...
3. 表单提交中文时出现乱码 JSP页面采用表单提交时,如果提交的字符是中文字符,可能会出现乱码情况。解决办法是对请求进行统一编码,例如: request.setCharacterEncoding("gb2312"); 或者,使用过滤器来解决...
以前在新浪博客写过js调用AJAX时Get和post的乱码解决办法,但是使用js代码比较繁琐,我们在使用ajax进行数据交互时可以使用js的一个成熟框架—jQuery。 一个网站的设计,不管是注册登录还是分页查找,都需要提交参数...
**解决办法:** **方法一:实现过滤器(FILTER)设置GBK编码** 1. 参考Tomcat的Servlet-Examples目录下的示例,将 `%TOMCAT安装目录%/WEBAPPS/SERVLET-EXAMPLES/WEB-INF/CLASSES/FILTERS/...
二、乱码的类型以及解决办法 乱码可以分为三种类型:response乱码、request乱码和浏览器显示乱码。 1. response乱码 response乱码是指Servlet向浏览器输出中文字符时出现的乱码问题。解决方法是: response.set...
GET方式传递参数时,如果参数包含中文,可能会因为默认编码不匹配而乱码。Tomcat服务器默认使用ISO8859-1编码。要解决此问题,需修改`server.xml`文件,添加`URIEncoding="utf-8"`到`Connector`标签,使Tomcat以UTF...
在使用jQuery进行Web开发过程中,表单序列化是一项常见的操作,它允许开发者将表单中的输入元素编码成URL编码格式的字符串,通常用于表单提交。然而,在处理包含中文字符的表单时,我们可能会遇到序列化后的数据出现...
对于GET方式提交的请求,Tomcat对查询字符串(query-string)的处理与POST方式不同,导致即使设置了过滤器,也可能无法解决问题。 **解决办法:** - 修改Tomcat的`server.xml`文件,在`<Connector>`元素中加入`...
解决办法: 1. **确保编码与解码的字符集一致**:在解码前,需要将base64编码的字符串先转换为正确的字符集,例如UTF-8。可以使用PHP的`iconv`或`mb_convert_encoding`函数来完成这个转换。例如: ```php $...
即使在POST方式下,数据不直接显示在URL中,但是由于表单提交同样可能会以GET方式提交数据,因此仍需进行URL编码。例如,若表单设置了action属性,并且在表单中输入了数据后点击提交,这些数据就可能以GET方式传递给...
在MVC应用中,解决办法包括: - 修改`web.config`文件,在`<system.web>`或特定控制器的子`web.config`中添加`<pages validateRequest="false">`。 - 在需要禁用验证的Action方法上添加`[ValidateInput(false)]`...
【PHP网站开发项目式教程任务4】主要涵盖了PHP的基础语法,包括PHP的开始标记、汉字乱码处理、注释方式、常量定义、变量的使用以及一些预定义变量的介绍。以下是详细的解释: 1. **PHP语法基础** - PHP程序通常以`...
当表单提交方式为`GET`时,若不处理编码问题,中文数据在服务器端可能会出现乱码。解决办法是确保服务器端和客户端的字符编码一致,通常在接收请求参数时设置正确的字符编码,如`request.setCharacterEncoding("UTF...