求new String(fileName.getBytes("GBK"),"ISO8859-1") 和
new String(fileName.getBytes("ISO8859-1"),"GBK") 区别详细解释...

解决方案 »

  1.   

    一个是把编码格式从GBK变成ISO8859-1
    另一个是把编码格式从ISO8859-1变成GBK
      

  2.   

    String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.
    byte[] b=fileName.getBytes("GBK")方法会根据指定的"GBK"编码返回某字符串在该编码下的byte数组
    new String(fileName.getBytes("GBK"),"ISO8859-1")是使用ISO8859-1指定的编码来将fileName.getBytes("GBK")解析成字符串简单点就是由GBK 转为 ISO8859-1.
    另一个相反
      

  3.   

    fileName.getBytes("GBK")是以“GBK”的编码格式获取fileName的byte数组;
    new String(fileName.getBytes("GBK"),"ISO8859-1")是将获取的byte数组解析成“ISO8859-1”编码格式的字符串。new String(fileName.getBytes("ISO8859-1"),"GBK") 正好与 new String(fileName.getBytes("GBK"),"ISO8859-1")相反。这个一般用来处理页面中的乱码。
      

  4.   

    第一个明白了,第二个也就明白第一个是gbk转换为ISO8859-1