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

   页面乱码

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

代码如下  

<%@ 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方式传参,通过

代码如下  
new String(request.getParameter("").getBytes("ISO-8859-1"),"UTF-8");

  的方式转换为需要的编码,如UTF-8等。

  2.通过POST方式传参,通过声明

代码如下  
request.setCharacterEncoding("UTF-8");
时间: 2024-12-31 19:14:40

jsp中文页面乱码与传参乱码的相关文章

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

页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可, www.111cn.net  代码如下 复制代码 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %> 数据库乱码 这种乱码会使你插

jsp页面传参乱码的解决方法

 本篇文章主要是对jsp页面传参乱码的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jsp页面传参乱码的解决方法   jsp页面js:   encodeURIComponent要使用两次 encodeURIComponent(encodeURIComponent(userAccount));   java: String  userAccount = java.net.URLDecoder.decode(userAccount,"UTF-8");/*需要处理异常*/

jsp页面传参乱码的解决方法_JSP编程

jsp页面传参乱码的解决方法 jsp页面js: encodeURIComponent要使用两次encodeURIComponent(encodeURIComponent(userAccount)); java:String  userAccount = java.net.URLDecoder.decode(userAccount,"UTF-8");/*需要处理异常*/ 纯属个人备注,以便后期使用

java web 中文乱码问题,上传组件传参乱码解决

1 response.setHeader("Content-type", "text/html;charset=UTF-8");//设置浏览器以什么编码显示数据,注意分号 response.setCharacterEncoding("UTF-8");2 Java中文使用Unicode编码.在Cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会乱码.编码使用java.net.URLEnoder类的encode(String

使用JQuery 获取当前[jsp,html,aps,php,...url传参值]

例如:update.jsp?sid=12        怎么获取当前url 传过来的参数 sid=12 呢.下面正好解决了您的需求.但不是最好的!    代码运行效果:

Angular 页面跳转时传参问题_javascript技巧

首先,你需要已经配置过你的rout,比如: $stateProvider .state('firstPage',{ url:'/Page/firstPage', templateUrl: 'Page/views/firstPage.html', controller: 'firstPageCtrl' //dependencies: ['service/vipSeachService'] }) .state('secPage', { params:{'message':null}, url: '/

redirect-SpringMVC重定向传参的问题:addFlashAttribute

问题描述 SpringMVC重定向传参的问题:addFlashAttribute @RequestMapping(value = "/test", method = RequestMethod.POST) public String test(@Validated SysUser sysUser, BindingResult result, RedirectAttributes attr) { try { if (result.hasErrors()) { Map<String,

javaweb-jsp和action的传值问题以及父子窗口传参的问题

问题描述 jsp和action的传值问题以及父子窗口传参的问题 父窗口打开一个子窗口,并且父页面通过传了id给子页面,子页面提供一个模糊搜索功能,然 后点击搜索后,传过来的url就消失了,现在的问题是怎么在jsp把值传给action,action在把同样的值传回来. 以下是父窗口打开子窗口,并把id传过去 function openNewWindow(id){ window.open("<%=basePath%>user/showUserList.action?id=i_receiv

js调用Flex中的方法并向flex中传参及flex调用js示例

首先,有了一个swf文件,test.swf,同时也有一个自动生成的html文件,test.html. 然后,在另外一个文件,test.jsp中,通过iframe,引入了test.html,即引入了swf. 现在想要在test.jsp中,向flex传参,并调用flex中的方法,我采用的方法是: 首先,在jsp中写一个调用flex的方法,如下 复制代码 代码如下: function initSWF(){ //得到swf的object var obj = window.frames["rightfra