正在学java 后台传到前台的中文为??? 这是个什么鬼 在线等

这是在控制台 打印出来的

这是在页面上显示的

后台代码如下:

 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页面的编码