JSP编码设置:
将创建的JSP代码的(默认在第一行)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
替换成
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
HTML编码设置:
因为JSP中也包含HTML的内容,HTML本身也是有编码格式的。
将HTML的charset的值改为和JSP编码一致,如UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Request中文乱码:
有时候在做jsp逻辑处理时,比如提交表单,从前台注册的页面提交了一部分的数据,但是后面处理的JSP页面通过 request.getParameter 调用时,获取到的是一堆乱码。
这是因为虽然前面JSP设置了编码格式,却没有在当前的JSP中设置读取数据的编码格式。
使用下面的代码,就可以是设置request获取请求内容的数据编码:
request.setCharacterEncoding("utf-8");
URL传参中文乱码:
这里我们需要配置tomcat服务器文件,才能解决这个问题。具体方法是,在tomcat的conf目录下找到server.xml配置文件,找到如下代码:
<span style="font-size:18px"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /></span>
在后面添加上编码方式,URIEncoding=”gb2312”或者utf-8 重新启动Tomcat问题就解决了。
POST中文乱码:
在Tomcat中,对于以POST方式提交的表单编码格式默认为ISO-8859-1的编码格式,而这种编码格式是不能编码中文的,所以就会出现乱码的现象。对于这种情况,我们可以对表单中的数据进行处理,在取得表单参数的时候设置编码方式,我们更改了我们的接受表单数据的页面如下所示:
<% new String(userName.getBytes("ISO-8859-1"),"gb2312") %>
1
如:
<%
String userName = request.getParameter("userName");
String passWord = request.getParameter("password");
out.println("表单输入的userName值为:" + new String(userName.getBytes("ISO-8859-1"),"gb2312")+"<br>");
out.println("表单输入的pasword值为:" + new String(passWord.getBytes("ISO-8859-1"),"gb2312")+"<br>");
%>
---------------------
作者:bin25
来源:CSDN
原文:https://blog.csdn.net/bin25/article/details/78060691
版权声明:本文为博主原创文章,转载请附上博文链接!