request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        java.util.Iterator iter = request.getParameterMap().entrySet().iterator();
        while (iter.hasNext()) {
            java.util.Map.Entry entry = (java.util.Map.Entry) iter.next();
            String key = entry.getKey().toString();
            if (key.equals("action")) {
                continue;
            }
            String val = ((String[]) entry.getValue())[0];// 这里怎么变成内存中的地址了
            String sql = "replace into settings values ('" + key + "','" + val + "');";
            out.print(sql + "<br>");
            //mysql.addBatchSQL(sql);
        }如果val有中文就变成 乱码

解决方案 »

  1.   

    你修改tomcate里面的$\conf\server.xml看看
     <Connector port="8080" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
      

  2.   

    用的不是TOMCAT <form name="myform" method="post" action="?action=save">用的是POST
      

  3.   

            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            String v = request.getParameter("webName");
            v = new String(v.getBytes("ISO8859-1"),"utf-8");
            out.print(v);为什么还要转换 才能正常显示中文呢  request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
    不已经设置了啊
      

  4.   

    以上问题有两种方式。
    一种是在jsp页面转码 new String(str.getbyte('ISO8859'),'utf-8');
    另一种修改tomcat的编码<Connector port="8080" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
      

  5.   

    这个只能设置 post 提交过来的数据
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");下面是设置 get 提交过来的数据
    v = new String(v.getBytes("ISO8859-1"),"utf-8");设置 get 编码 也可以从 tomcat 中设置默认,在 connector 中添加一个 URIENcoding="XXX"
    如:<Connector port="8080" URIEncoding="UTF-8" />
      

  6.   

    request默认的是iso-8859-1编码
    遇到中文肯定乱码
    必须设定其编码
    楼主试试//设置编码
    request.setCharacterEncoding("GBK");
    response.setCharacterEncoding("GBK");
    response.setContentType("text/html");
      

  7.   

    先看看页面的编码,一般都设定为UTF-8.
      

  8.   

    万物皆UTF-8,一定不会出乱码!
      

  9.   

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@include file="admin_head.jsp" %>在说一次我用的不是TOMCAT 是 glassfish        request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            String v = request.getParameter("webName");
            v = new String(v.getBytes("ISO8859-1"),"utf-8");
            out.print(v);我想知道的是为什么还要编码才能显示中文,我页面全是UTF8
      

  10.   

    终于不用重新编码解决乱码了http://topic.csdn.net/u/20090120/12/d95a64c5-08d1-4676-9cf4-88f585723ff0.html原因是
    request.setCharacterEncoding("utf-8");
    前面有request.getParameter("");
    语句
      

  11.   


    这个楼主代码没给全,大家说的也都没错,平时遇到乱码基本都是这些解决办法。总说tomcat设置编码的网友没注意看楼主用的什么服务器。
      

  12.   

     response.setContentType("text/html;charset=utf-8");
    这样设置一下就应该没问题了,
      

  13.   

    看一下页面上的编码是不是也是“utf-8”的
      

  14.   

    这个过程中拉了最小三方的编解码:
    页面,服务器,数据库,及OS,
    其实页面,服务器及数据应该甚么都不搞,
    就跟随OS的编码来编码就最简单,
    但实情是,今天很乱的,多方都来一次编解码
      

  15.   

    乱码问题,每个程序员心中无言的伤痛,呵呵。避免有几点吧:多用post 少用get ,有条件用过滤器转码。
      

  16.   

    解决乱码无非这几种
    1弄过滤器2 request.setCharacterEncoding("GBK");
     response.setCharacterEncoding("GBK");3 String str=new String(x.getBetys("ISO8859-1"),"UTF");