jsp中文乱码处理 jsp中文乱码解决方案

原文博主: https://blog.csdn.net/qq_25272679/article/details/80491926

 https://blog.csdn.net/qq_25272679/article/details/80491926

jsp中文乱码解决方案

解决方案:

jsp编译成java文件的编码pageEncoding=”gb2312”:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="gb2312"%>
  
  
  • 1
  • 2

下面是常见的编码设置:

1. HTML中文编码转换

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  
  
  • 1

2. JSP中文编码转换

2.1. 针对Tomcat下动态内容的中文乱码问题,有以下几个解决办法:

//1. 在每个JSP文件的开头增加如下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  
  
  • 1
  • 2
//2. 设置编码参数:
request.setCharacterEncoding("UTF-8");
  
  
  • 1
  • 2
//3. 使用编码过滤器:
publicclass SetCharacterEncoding implements Filter 
{    
    @Override
    public void destroy() {}  
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {       
    //设置字符编码
    request.setCharacterEncoding("UTF-8");
    //将控制传到下一个过滤器,如果没有过滤器则传到被调用者
    chain.doFilter(request, response);    
    }    
    @Override
    public void init(FilterConfig arg0) throws ServletException {}
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
//4.修改Tomcat根目录中conf子目录下的server.xml文件,在中加入URIEncoding="UTF-8"

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
  
  
  • 1
  • 2
  • 3
//5.如果是调用response.sendRedirect传递中文参数产生的乱码,如:response.sendRedirect("a.jsp?p=中文参数");
请修改成如:
<% //引入URLEncoder %><%@page import="java.net.URLEncoder"%>
<%String p = "中文参数";//对中文参数编码
p = URLEncoder.encode(p,"UTF-8");
response.sendRedirect("a.jsp?p=" + p);%>
以解决乱码问题。
如果方法4还不能解决某些超链接传参乱码问题,请使用方法5。
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
//6.JavaScript中如果出现URL传参乱码问题,如:
open("a.jsp?p=中文参数");
请修改成:
<script type="text/javascript">
    function openWindow(){
    var url = "a.jsp?p=中文参数";     
    url = encodeURI(url);    
    open(url);
    }
</script>
<input type="button" value="JavaScript中文参数"       onclick="openWindow();">
以解决乱码问题。JavaScript中的open方法打开浏览器窗口,传递参数,其本质也是URL传参。一般方法4就可以很好的解决中文参数乱码问题。如果方法4不生效,才考虑方法6。
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3. 数据库乱码:

jdbc:mysql://localhost:3306/exam?useUnicode=true&characterEncoding=utf8;
发布了47 篇原创文章 · 获赞 51 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_41976613/article/details/95328512