jsp

位置:IT落伍者 >> jsp >> 浏览文章

jsp中文页面乱码与传参乱码


发布日期:2020年10月14日
 
jsp中文页面乱码与传参乱码

页面乱码

这种乱码的原因是应为没有在页面里指定使用的字符集编码解决方法只要在页面开始地方用下面代码指定字符集编码即可

代码如下

<%@ page contentType="text/html; charset=gb" language="java" import="javasql*" errorPage="errjsp" %>

数据库乱码

这种乱码会使你插入数据库的中文变成乱码或者读出显示时也是乱码

解决方法如下

在数据库连接字符串中加入编码字符集

代码如下 String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB";

并在页面中使用如下代码

代码如下 responsesetContentType("text/html;charset=gb");
requestsetCharacterEncoding("gb");

URL传值乱码

方法一

在bjsp中把pageEncoding="GB"改为pageEncoding="ISO"

虽然这样bjsp页面显示的内容还是乱码但是不是那种“??????”的乱码而是一些特殊字符

然后在浏览器中查看菜单中修改成GB的编码这时乱码就显示中文了

但是这种方法是不可行的

方法二

在bjsp中把

代码如下 String name=requestgetParameter("name");

修改为

代码如下 String name=new String(requestgetParameter("name")getBytes("ISO")"GB");

这时再在页面上显示则就是中文了

方法三:

在请求页面的请求参数需要用encodeURI进行转码然后在接收请求的页面需要进行字符集转换 本例中的请求和接收页面的字符集都是UTF:

请求的JSP页面用JavaScript的encodeURI()方法将参数转码

代码如下 function toView(param){
var encodeparam = encodeURI(param) ;
windowlocationhref="/naias/advAna_formdo?method=showDetail&title="+encodeparam ;
}

在跳转的Action中进行字符集转换 wwwcnnet

代码如下 public ActionForward excute(ActionMapping mapping ActionForm form HttpServletRequest request HttpServletResponse response){
String title= requestgetParameter("title")
title= new String( titlegetBytes("iso") "UTF")
Systemoutprintln(title)
}

为编码为UTF的JSP页面传参对于中文乱码的解决分为两种情况

通过GET方式传参通过

代码如下 new String(requestgetParameter("")getBytes("ISO")"UTF");

的方式转换为需要的编码如UTF

通过POST方式传参通过声明

代码如下 requestsetCharacterEncoding("UTF");

上一篇:JSTL实现JSP应用程序快速开发

下一篇:JSP如何实现文件上传