小弟用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%>"/>
但是这个文本域显示的是??  
请高手们来帮下忙  高分相送

解决方案 »

  1.   

    <%request.setCharacterEncoding("gb2312");%>
      

  2.   

    建议所有东西都用utf-8
    页面编码也为utf-8
    <%@ page language="java" pageEncoding="UTF-8"%>
      

  3.   

    你要写一个过滤器将数据库的编码转换成跟浏览器的编码是一样的
    数据库一般是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里面配置一下就可以了
      

  4.   

    new String(request.getParameter("n").getByte(8859_1));
      

  5.   

    6楼兄弟的方法用过了   但是打开页面 有 new   String(request.getParameter("n").getByte(8859_1));就会出现  The server encountered an internal error () that prevented it from fulfilling this request.
       org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)......
         用<%t=request.getParameter("n");%> 就可以打开页面  但是无法解决中文显示问题  
      

  6.   

    楼主 不知道你是否确认了从数据库读出的数据是不是乱码。
    数据库如果不做设置很可能是ISO-8859-1的编码。如果数据库读出的数据没问题那么请楼主看一下WEB服务器的编码设置。
    WEB服务器一般会假定请求为ISO-8859-1。如果WEB服务器没问题就是页面的问题了。
    请确认页面的头是否设置了编码。PS'页面编码:
    <%@ page contentType="text/html; charset=GBK" %>
      

  7.   

    在JSP页面上面加入<%request.setCharacterEncoding("gbk");%>
    支持中文就可以了