小女子请教各位高手两个困扰了我很久的问题:
    我在以下环境下进行的开发;
tomcat5.0、JDK1.5、SQLServer2000、服务器操作系统是window 2000 Advanced Server
运行时正常。然后我把它移植到另外一台一模一样的机器上,操作系统和应用服务器的版本也都一样,可是却在页面的传值过程中出现了乱码。
    在之前的机器上页面之间传值时,我使用了request.setCharacterEncoding("UTF-8");接收表单传过来的值;
    而在后来的机器上必须要加上
new String ((request.getParameter("function_name").getBytes("iso-8859-1")),"UTF-8")来进行编码的转换,否则出现的是乱码。
    这是为什么呀?觉得很奇怪~!    还有一个问题:为什么有些系统下运行好用的java script在有些系统下不好用呢?

解决方案 »

  1.   

    我晕 这可能跟你IE环境有关系,你怎么设置的编码格式,看看你的IE编辑栏中格式是不是一样的,跟操作系统没直接关系呵呵你看看吧
      

  2.   

    直接:response.setCharacterEncoding(template.getEncoding());    
         response.setContentType("text/html;charset=utf-8");获得的编码不一定是iso-8859-1
      

  3.   

    十分正常的一件事情
    转码是 j2ee 十分正常的事情
    你可以写个过滤器javascript 和浏览器有关系  
    不同的浏览器对 javascript 支持不同 下面是个转码的过滤器package netstore.framework.util;
    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;
    import javax.servlet.UnavailableException;/**
     * Example filter that sets the character encoding to be used in parsing the
     * incoming request
     */
    public class SetCharacterEncodingFilter implements Filter {    /**
         * Take this filter out of service.
         */
        public void destroy() {
        }
        /**
         * Select and set (if specified) the character encoding to be used to
         * interpret request parameters for this request.
         */
        public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain)throws IOException, ServletException {    request.setCharacterEncoding("GB2312");    // 传递控制到下一个过滤器
        chain.doFilter(request, response);
        }    public void init(FilterConfig filterConfig) throws ServletException {
        }
    }web.xml  配置 <filter> 
    <filter-name>Set Character Encoding</filter-name> 
    <filter-class>netstore.framework.util.SetCharacterEncodingFilter</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern> 
    </filter-mapping>
      

  4.   

    to MySoftZone():
    我使用的是同一台机器上的IE浏览器,访问第一台服务器上的程序没有出现任何问题,而把代码移植到其他的服务器上,这时,就出现了乱码。
      

  5.   

    TO 小飞飞:
    我在每一个需要接受参数的JSP页面上都写了request.setCharacterEncoding("UTF-8");
    这样和过滤器的效果是不是一样啊?
      

  6.   

    http://www.quandi.cn/WebForm1.aspx?quandi_id=asdex1999
      

  7.   

    url传参的编码问题
    在 server.xml 的   <Connector 中加入 URIEncoding="UTF-8" jsp页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    如果是中文字符的话 最好 传参数的时候  转换下编码  取到的时候在   把编转化回来
    用 java.net.URLEncoder.encode()编码,java.net.URLDecoder.decode()解码
      

  8.   

    iso-8859-1过滤也行的
    ......
      

  9.   

    在TOMCAT中request.setCharacterEncoding("UTF-8");只能对POST方式传输的数据有效,对GET无能为力,需要在SERVERL.XML中添加URIEncoding="UTF-8".
    Tomcat:修改Tomcat安装目录下conf/server.xml文件,加上URIEncoding="UTF-8"/
    <Connector port="8080" .... URIEncoding="UTF-8"/>