我的网页编码是UTF-8,Maestà是意大利语属于数据库里面的内容,第一页能把它读取出来,但是当我在网页上点击它然后在抛出这一条内容的时候(String c=request.getParameter("class");)在第二页就变成了MaestÃ,无法识别数据报错,想请问大牛们该怎么做才能让Maestà正确显示?我觉得应该就是编码的问题

解决方案 »

  1.   

    在这行代码前加request.setCharacterEncoding("UTF-8")试试看
      

  2.   


    不行..显示下面错误
    HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: Exception in JSP: /link_ontology2.jsp:7067: <table border="1" align="center">
    68: <tr>
    69: 
    70: <td height="299" width="300" align="center"><%=q.ShowDetails2(c)%></td>
    71: <td height="599" width="440" align="center" rowspan="2"><%=q.ShowPhoto(c)%></td>
    72: 
    73: 
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)root causejava.lang.NullPointerException
    com.query.Query1.ShowDetails2(Query1.java:542)
    org.apache.jsp.link_005fontology2_jsp._jspService(link_005fontology2_jsp.java:115)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      

  3.   

    先在servlet用这个方法解码!
    String boardName=request.getParameter("boardName");
    if(boardName!=null){
      byte[] by=boardName.getBytes("ISO-8859-1");
      String ss=new String(by,"UTF-8");
      boardName=ss;
    }
      

  4.   

    不至于吧,设一个字符集后就Null了,原先就不Null?
    上面这一行代码是什么?
      

  5.   

    如果你是表单提交你把method="post"如果你是超链接提交
    request.setCharacterEncoding("UTF-8");
    String bordName = new String(request.getParameter("boardName").getBytes("ISO-8859-1"),"UTF-8");
      

  6.   

    先在servlet用这个方法解码!
    String boardName=request.getParameter("boardName");
    if(boardName!=null){
      byte[] by=boardName.getBytes("ISO-8859-1");
      String ss=new String(by,"UTF-8");
      boardName=ss;
    } 同意这种方法  但最好如楼上说的 先弄一个过滤器比较好
      

  7.   

    一般编码都采用UTF-8那样更好