new string对象,带了两个参数怎么理解?

filename = new String(filename.getBytes("UTF-8"), "iso-8859-1");
这传入两个参数是什么意思?

filename这个字符串的编码格式是UTF-8,第一个参数是获取filename的byte数组,第二个参数指定生成字符串的编码格式是iso-8859-1
整个功能就是把UTF-8的编码的字符串转成iso-8859-1编码的字符串

一个是文件名,一个是编码格式

就是把utf-8这个字符串转成字节数组。然后再转成8859编码的字符串。

先把filename转成byte数组,再按照iso-8859-1转成String