日期:2014-05-18  浏览次数:20672 次

解决中文乱码 送高分
小弟用SQL语句sqlbean.executeQuery取出了 在数据库里的中文字 放在String A中 然后用<jsp:forward page="INPUT.jsp">
<jsp:param name="n" value="<%=A%>"/> </jsp:forward>
  INPUT.jsp文件 如下
<%t=request.getParameter("n");%>  
文本域:<input type="text" name="textfield" value="<%=t%>"/>
但是这个文本域显示的是??  
请高手们来帮下忙 高分相送

------解决方案--------------------
request.setCharacterEncoding("gbk");
------解决方案--------------------
<%request.setCharacterEncoding("gb2312");%>
------解决方案--------------------
文本框里显示的都是“????”号吗?那你可以试试ls的方法解决字符编码的问题!
------解决方案--------------------
建议所有东西都用utf-8
页面编码也为utf-8
<%@ page language="java" pageEncoding="UTF-8"%>
------解决方案--------------------
你要写一个过滤器将数据库的编码转换成跟浏览器的编码是一样的
数据库一般是GBK而浏览器是UTF-8
如果你直接将数据库的编码该成UTF-8那是最简单的了

你在过率器里面转换
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
chain.doFilter(request, response);
}
然后在web.xml里面配置一下就可以了

------解决方案--------------------
new String(request.getParameter("n").getByte(8859_1));
------解决方案--------------------
楼主 不知道你是否确认了从数据库读出的数据是不是乱码。
数据库如果不做设置很可能是ISO-8859-1的编码。

如果数据库读出的数据没问题那么请楼主看一下WEB服务器的编码设置。
WEB服务器一般会假定请求为ISO-8859-1。

如果WEB服务器没问题就是页面的问题了。
请确认页面的头是否设置了编码。

PS'页面编码:
<%@ page contentType="text/html; charset=GBK" %>
------解决方案--------------------
在JSP页面上面加入<%request.setCharacterEncoding("gbk");%>
支持中文就可以了
------解决方案--------------------
页面编码 和数据库读取后的编码 要一致