jsp中文乱码解决方案

简介:鉴于网上东西太杂,无法快速的解决乱码问题,在这里有一些鄙人的解决办法(使用myeclipse 设置utf-8格式,网上说的都设置之后,还是乱码。)。

解决方案:

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

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

下面是常见的编码设置:

1. HTML中文编码转换

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

2. JSP中文编码转换

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

//1. 在每个JSP文件的开头增加如下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
//2. 设置编码参数:
request.setCharacterEncoding("UTF-8");
//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 {}
}
//4.修改Tomcat根目录中conf子目录下的server.xml文件,在中加入URIEncoding="UTF-8"

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
//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。
//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。

3. 数据库乱码:

jdbc:mysql://localhost:3306/exam?useUnicode=true&characterEncoding=utf8;
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值