所有用到编码的地方必须是一致的,比如jsp、数据库==

解决方案 »

  1.   

    数据库的编码方式不是utf-8啊,数据库也要设置的,具体百度,很多
      

  2.   


    是的,这个我所有的都改掉了。这个错误让我很费解 String name=request.getParameter("username");得到的name值为正常的这个应该是过滤器得为作用,然后用String  newName=new String(name.toString().getBytes(),"utf-8")转码就发生乱码了。
      

  3.   


    数据库编码已经修改过来了,取值到jsp页面没有问题  这个错误就是jsp提交到servlet 出错
      

  4.   

    String name="张三";
    //获取默认编码
    System.out.println(System.getProperty("file.encoding")); 
    //.getBytes()这样不带参数默认是以平台的默认编码进行编码
    String  newName=new String(name.toString().getBytes(),"utf-8");
    //.getBytes("你的编码")这里是UTF-8,这样才会是正确,其实这里根本不需要转码
    System.out.println(newName);
      

  5.   

    这种问题最好是统一jsp,.java,与数据库的编码方式。
      

  6.   

    public static void main(String[] args) {
    System.out.println(System.getProperty("file.encoding"));
    //UTF-8  ---系统默认的编码方式
    String str = "汉字";
    System.out.println(str);
    //汉字   ---
    try {
    String str_gbk = new String(str.getBytes("UTF-8"),"GBK");
    //同String str_gbk = new String(str.getBytes(),"GBK System.out.println(str_gbk);
    //姹夊瓧   ---将编码方式转换GBK后,控制台打印为乱码 String str_utf8 = new String(str_gbk.getBytes("GBK"),"UTF-8");
    System.out.println(str_utf8);
    //汉字   ---将UTF-8转换为GBK再转换为UTF-8,控制台显示没有问题 } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    } }
    我发现字符编码与系统平台默认的编码方式不一致时,控制台打印的就是乱码。(我不知道原因)
    你用System.out.println(System.getProperty("file.encoding"));看一下你的平台默认的编码方式是不是不是UTF-8。
      

  7.   

    从你的代码上看,是输出的编码和控制台选择的不一致
    选择你要运行的代码,右击Run --> Run Configurations --> common
    我猜,你的控制台默认编码是iso-8859-1
      

  8.   

    很多地方需要控制编码规则。
    页面,工程,TOMCAT容器,数据库,等等。都统一源码。
      

  9.   

    改成这样试试String  newName=new String(name.toString().getBytes(“UTF-8”),"ISO8859-1");