时常看到有人这样写String fn = new String(fileName.getBytes(encoding), encoding);
逆转一下有什么意义(注意用的是同一个编码encoding).

解决方案 »

  1.   

    同一个编码是没有任何意义的,第一个encoding是原先的编码方式
    第二个是新的编码方式,一般用在jsp中处理编码方面,放之四海而皆准。
      

  2.   


    filename=request.getParameter("filename");
    String fn = new String(fileName.getBytes("UTF_8"), "GBK"); 这样使用
      

  3.   

    答:有点儿意义.
    如:下例代码:
    String ss="你好!";
         String s1=new String(ss.getBytes("euc-kr"),"euc-kr");
         System.out.println(ss.equals(s1));
    运行结果为:false
    目的:为false至少表明:串ss中字符是不能用euc-kr进行编码
       为true则什么也不能说明.(不能认为:串ss中字符就一定能用encoding编码)
      

  4.   

    我觉得第二个字符串是转码了吧
    第一个String a="dsada";//假如默认GBK
    String b = new String(a.getBytes("UTF-8"),"UTF-8");
    这个时候b应该是utf8编码的了
      

  5.   

    不论是不是一个encoding,都是没有意义的。因为在Java里面,所有的String都是UTF-16编码来标示的,任何一个byte的数组使用了一个charset解码后在Java里面都使用了UTF-16存储。
    建议大家看一下编码方面的知识。