后台代码如下:
public String paging(){
HttpServletRequest req=ServletActionContext.getRequest();
HttpServletResponse resp=ServletActionContext.getResponse();
int pageIndex=Integer.parseInt(req.getParameter("pageIndex").toString());
int pageSize=Integer.parseInt(req.getParameter("pageSize").toString()) ;
List<ResItem> li= rs.getList(" from ResItem");
int allcount=li.size();
System.out.println("数据记录为"+allcount);
//将数据条件取出来
int pageCount= allcount%pageSize==0?allcount/pageSize:allcount/pageSize+1;//总页数 传到前台
System.out.println("11+111");
List <ResItem>liPaging=null;
PrintWriter pw = null;
try {
pw = resp.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
StringBuffer sb=new StringBuffer();
for(int i=(pageIndex-1)*pageSize;i<li.size();i++){
if(i+1<=pageIndex*pageSize&&i+1>=(pageIndex-1)*pageSize+1){
sb.append("<tr id=tr"+li.get(i).getItemId()+">");
sb.append("<td>"+li.get(i).getItemName()+"</td>");
sb.append("<td>"+li.get(i).getItemCreatetime()+"</td>");
sb.append("<td>"+li.get(i).getItemBtime()+"</td>");
sb.append("<td>"+li.get(i).getItemEtime()+"</td>");
sb.append("<td>"+li.get(i).getItemMonth()+"</td>");
sb.append("</tr>");
System.out.println(li.get(i).getItemName());
}
}
// resp.setContentType("text/html;utf-8");
System.out.println(sb);
pw.println(sb.toString()+"|"+pageCount+"|"+pageIndex+"|"+pageSize);//将对象返回到 修改页面
return null;
}
这个太明显了,中文编码转为iso8859-1时全是???
你设置一下编码就好了,具体应该是有保存为java文件的编码,这个编码应该是和平台一致,win下应该是gbk那么问题应该出在发送请求头里要求浏览器使用的编码,charset头看一下
加上这一句
response.setCharacterEncoding("UTF-8");
前台界面文件要设置编码。后来也要。默认8859_1
如果你是用了数据库,还有可能是存入数据库的默认编码不一致,最好都统一一下。
前后台编码的问题,设置成一样的就行了
设置数据库的编码为utf-8
设置一下数据库的编码为utf-8
首先看下数据库的编码格式,http获取的数据需要处理一下格式问题,默认为iso8859-1,因为是老外发明的
看看数据库的数据是不是乱码,如果是,就设置一下数据库编码,如果没乱码,就设置一下jsp页面的编码