问题描述
- 正在学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,因为是老外发明的
时间: 2024-12-10 22:02:34