帖!关于JSP页面在一些浏览器下面显示是乱码的有关问题
求助帖!关于JSP页面在一些浏览器上面显示是乱码的问题!
RT: 在测试已经做好的网站的时候,同事帮我返现了一个问题,在一些浏览器上(部分IE8,部分360,IE9) 整个网页有一小块的地方 中文显示是乱码,导致 数据查询不出来!困扰了几天了,求大神指导下。谢谢了!
附上主要代码
a.jsp、
在 a.jsp中 <td>显示的是乱码 但只是在一部分浏览器中。
------解决方案--------------------
是有的 server.xml 文件中URIEncoding="UTF-8" 也写了! 把这个去掉 这个有bug 把页面全部设置成utf-8 后台编码方式也全部设置成UTF-8这样不会有问题的 ,如果还有问题 检查以下浏览器的编码方式。再不行 就直接new String ("str".getBytes("iso-8859-1"),"utf-8");
response.setCharEncoding("utf-8");
实在不可以这样写
在上面 写
<%
String UNAME = (String )request.getAttribute("UNAME");
UNAME = new String (UNAME .getBytes("iso-8859-1"),"utf-8");
%>
<td><%=UNAME %></td>
------解决方案--------------------
用get方式传中文最好用java.net.URLEncoder转一下
------解决方案--------------------
给你个例子吧,你试试看把,我是这么解决乱码的。
function onSubmit(){
//简单验证数据
var file = document.getElementById("file").value;
//拼接请求的字符串
var url = "Logic.jsp";
url+="?file=" + file;
url=encodeURI(url);
url=encodeURI(url);
var form = document.mainform.action=url;
return true;
}
servlet 里面 处理。
System.out.println(URLDecoder.decode(request.getParameter("file"),"UTF-8"));
RT: 在测试已经做好的网站的时候,同事帮我返现了一个问题,在一些浏览器上(部分IE8,部分360,IE9) 整个网页有一小块的地方 中文显示是乱码,导致 数据查询不出来!困扰了几天了,求大神指导下。谢谢了!
附上主要代码
- Java code
servlet 端: request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String date = OneDate.getTime(); String enddate=GetTime.getTime(); int uid = Integer.parseInt(request.getParameter("01")); String uname = request.getParameter("02"); USER user=new USER(); 把上面四个值传入 user对象; 执行一个查询语句 Result result1=fafd.searchAppUM(user); ... request.setAttribute("BDATE", onedate); (因为a.jsp要用这两个参数,所以下面采用 forward跳转) request.setAttribute("EDATE", enddate); request.setAttribute("UNAME", uname); HttpSession session1 = request.getSession(); session1.setAttribute("USERS", result1); request.getRequestDispatcher("a.jsp").forward(request, response);
a.jsp、
- Java code
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="javax.servlet.jsp.jstl.sql.Result"%> 。。。。 <table> <tr> <td><%=request.getAttribute("UNAME")%></td> </tr> </table>
在 a.jsp中 <td>显示的是乱码 但只是在一部分浏览器中。
------解决方案--------------------
是有的 server.xml 文件中URIEncoding="UTF-8" 也写了! 把这个去掉 这个有bug 把页面全部设置成utf-8 后台编码方式也全部设置成UTF-8这样不会有问题的 ,如果还有问题 检查以下浏览器的编码方式。再不行 就直接new String ("str".getBytes("iso-8859-1"),"utf-8");
response.setCharEncoding("utf-8");
实在不可以这样写
在上面 写
<%
String UNAME = (String )request.getAttribute("UNAME");
UNAME = new String (UNAME .getBytes("iso-8859-1"),"utf-8");
%>
<td><%=UNAME %></td>
------解决方案--------------------
用get方式传中文最好用java.net.URLEncoder转一下
------解决方案--------------------
给你个例子吧,你试试看把,我是这么解决乱码的。
function onSubmit(){
//简单验证数据
var file = document.getElementById("file").value;
//拼接请求的字符串
var url = "Logic.jsp";
url+="?file=" + file;
url=encodeURI(url);
url=encodeURI(url);
var form = document.mainform.action=url;
return true;
}
servlet 里面 处理。
System.out.println(URLDecoder.decode(request.getParameter("file"),"UTF-8"));