在我写的两个JSP页面中传递Form参数出现乱码是怎么回事啊??
该功能是上传视频,一个页面uploadFile.jsp是填写Form表单,
另一个页面process.jsp是处理文件上传的代码,
从uploadFile.jsp中接受到的表单数据在process.jsp中打印出来全是乱码,
两个页面的编码都是UTF-8,但还是出现了乱码。
向各位请教一下???

解决方案 »

  1.   

    1、在tomcat/conf/server.xml中,找到connecter标签(就是定义8080端口的标签),
    增加属性:
    URIEncoding="UTF-8"2、传递的参数如果包含中文,最好:
    encodeURIComponent()
    编码一下
      

  2.   

    你可以再配置文件加个filter过滤器啊..写个filter方法就可以了..
      

  3.   

    用filter过滤器  ,可以写一下代码来看看吗? 
      

  4.   


    1、对Servlet:
    request.setCharacterEncoding("GB2312"); //设置输入编码格式
        response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
        PrintWriter out = response.getWriter(); //建议使用PrintWriter输出
    String name = request.getParameter("name");2、对JSP:
    (1)、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:
    <%@page contentType="text/html; charset=gb2312"%>
    (2)、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:
        <%request.setCharacterEncoding("GB2312");%>
    (3)、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP如果不行就在传参数的时候编码一下....
      

  5.   


    <%
       request.setCharacterEncoding("gb2312");
       response.setCharacterEncoding("gb2312");
       response.setContentType("text/html";charset="gb2312");
    %> 
      

  6.   

    过滤器package com.dz.filter;import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    /**
     *  编码过滤器实体类
     * @author Administrator
     *
     */
    public class EncodingFilter implements Filter {
    private FilterConfig config;
    private String encoding="utf-8";
    public void destroy() {
    // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    request.setCharacterEncoding(encoding);
    chain.doFilter(request, response);//继续过滤 } public void init(FilterConfig config) throws ServletException {
    this.config=config;
    String s=config.getInitParameter("encoding");//获取初始化参数数,
    if(s!=null){
    this.encoding=s;
    } }}
      

  7.   

    我有个类似的问题,URL 编码的问题,我有个文件是中文名子,我想访问通过浏览器访问,可就是说找不到,路径有错?这是怎么回事
      

  8.   

    传递中文时utf-8 最好改为GBK
      

  9.   

    用url传参,这种方式的话。一般情况下都会出现乱码的  例如: excaple.jsp?name="张三" 如果只是一两个页面的话,强转一下吧。多的话建议使用过滤器     
    强转: String name=new String(name.getBytes("ISO-8859-1"),"utf-8");
      

  10.   

    如果是乱码的话,对于get方法,带有中文的url,可通过修改%tomcat_home%/conf/server.xml文件,在<Connector port="8080" protocol="HTTP/1.1" maxThreads="100" connectionTimeout="10000" redirectPort="8443" />后面加一句URIEncoding="utf-8",再重启tomcat试试
      

  11.   

    荐于经常看到朋友说哪里出现中文乱码了,菜鸟我以自己在项目经常遇到的整理了一下,有以下几个方面: 1.最基本的在jsp页面上要把pageEncoding设置为中文,如: <%@ page language="java" pageEncoding="GBK"%> 2.对于表单的doPost()提交,也会出现中文出现乱码,可以在servlet里设置如下:request.setCharacterEncoding("GBK"),response.setCharacterEncoding("GBK"),不过此方法在每个servlet都要设置,很麻烦,建议写个过滤器设置。可以参考以下: 
        public void doFilter(ServletRequest request, ServletResponse response, 
    FilterChain chain) throws IOException, ServletException { HttpServletRequest request_1 = (HttpServletRequest) request; 
    HttpServletResponse response_1 = (HttpServletResponse) response; // 转换编码,并且加上去缓存 
    request_1.setCharacterEncoding("GBK"); 
    response_1.setCharacterEncoding("GBK"); 
    chain.doFilter(request, response); } 
    3、第三种就是 如果用doGet()提交,后面跟的参数如果也是中文,这个解决方法可以在tomcat或JBoss的配置文件里面配置,以tomcat为例: 
         <Connector port="8099" maxHttpHeaderSize="8192" 
                  maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
                  enableLookups="false" redirectPort="8443" acceptCount="100" 
                  connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/> 
      在这里面最后加上URIEncoding="GBK". 
    4、ajax也会产生乱码问题,这个问题可以在tomcat的配置那里解决。 5、文件上传时文件名也会出现乱码。 
    可以用此方法paramMap.put(fi.getFieldName(), new String(fi.getString().getBytes("ISO-8859-1"),"GBK")); 知识浅陋,若有错误,请大虾指正或其他更多的补充 。
    1楼朋友总结的不错,楼主参考一下
      

  12.   

    你的form表单的提交方式是“get”还是“post”啊?
    建议post