jsp中文页面乱码与传参乱码问题解决办法

    文章来源:中国互联 更新时间:2013-7-26 16:38:46
分享:
本文章来总结关于jsp中文乱码的一些解决办法,包括中文传值,传参乱码,页面乱码等等,有需要了解的朋友可参考参考
页面乱码
这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可, www.111cn.net
 代码如下 复制代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %>
数据库乱码
这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,
解决方法如下:
在数据库连接字符串中加入编码字符集
 代码如下 复制代码
String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
并在页面中使用如下代码:
 代码如下 复制代码
response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312");
URL传值乱码
方法一:
1. 在b.jsp中把pageEncoding="GB2312"改为pageEncoding="ISO8859-1" 虽然这样b.jsp页面显示的内容还是乱码,但是不是那种“??????”的乱码,而是一些特殊字符 2. 然后在浏览器中查看菜单中修改成GB2312的编码,这时乱码就显示中文了。 3. 但是这种方法是不可行的。
方法二:
1. 在b.jsp中把
 代码如下 复制代码
String name=request.getParameter("name");
修改为
 代码如下 复制代码
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
2. 这时再在页面上显示,则就是中文了。
方法三:
在请求页面的请求参数需要用encodeURI进行转码,然后在接收请求的页面需要进行字符集转换。    本例中的请求和接收页面的字符集都是UTF-8:
1.请求的JSP页面用JavaScript的encodeURI()方法将参数转码:
 代码如下 复制代码
    function toView(param){    var encodeparam = encodeURI(param) ;    window.location.href="/naias/advAna_form.do?method=showDetail&title="+encodeparam ;    }
2.在跳转的Action中进行字符集转换:  www.111cn.net
 代码如下 复制代码
    public ActionForward excute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){    String title= request.getParameter("title");    title= new String( title.getBytes("iso-8859-1"), "UTF-8");    System.out.println(title);    }
为编码为UTF-8的JSP页面传参,对于中文乱码的解决分为两种情况:
1.通过GET方式传参,通过
在线咨询
  • 在线时间
  • 8:00-21:00
jsp中文页面乱码与传参乱码问题解决办法-中国互联

jsp中文页面乱码与传参乱码问题解决办法

    文章来源:中国互联 更新时间:2013-7-26 16:38:46
分享:
本文章来总结关于jsp中文乱码的一些解决办法,包括中文传值,传参乱码,页面乱码等等,有需要了解的朋友可参考参考
页面乱码
这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可, www.111cn.net
 代码如下 复制代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %>
数据库乱码
这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,
解决方法如下:
在数据库连接字符串中加入编码字符集
 代码如下 复制代码
String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
并在页面中使用如下代码:
 代码如下 复制代码
response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312");
URL传值乱码
方法一:
1. 在b.jsp中把pageEncoding="GB2312"改为pageEncoding="ISO8859-1" 虽然这样b.jsp页面显示的内容还是乱码,但是不是那种“??????”的乱码,而是一些特殊字符 2. 然后在浏览器中查看菜单中修改成GB2312的编码,这时乱码就显示中文了。 3. 但是这种方法是不可行的。
方法二:
1. 在b.jsp中把
 代码如下 复制代码
String name=request.getParameter("name");
修改为
 代码如下 复制代码
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
2. 这时再在页面上显示,则就是中文了。
方法三:
在请求页面的请求参数需要用encodeURI进行转码,然后在接收请求的页面需要进行字符集转换。    本例中的请求和接收页面的字符集都是UTF-8:
1.请求的JSP页面用JavaScript的encodeURI()方法将参数转码:
 代码如下 复制代码
    function toView(param){    var encodeparam = encodeURI(param) ;    window.location.href="/naias/advAna_form.do?method=showDetail&title="+encodeparam ;    }
2.在跳转的Action中进行字符集转换:  www.111cn.net
 代码如下 复制代码
    public ActionForward excute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){    String title= request.getParameter("title");    title= new String( title.getBytes("iso-8859-1"), "UTF-8");    System.out.println(title);    }
为编码为UTF-8的JSP页面传参,对于中文乱码的解决分为两种情况:
1.通过GET方式传参,通过
在线咨询
  • 在线时间
  • 8:00-21:00