java中的文件名charset问题

Lli*_*gra 6 java encoding jboss

由于字符集不匹配,当文件名具有重音时,尝试打开它所声明的文件无法找到.我在linux系统上使用UTF-8(/ etc/locales也设置了UTF-8).使用-Dfile.encoding = UTF-8和环境变量JBOSS_ENCODING ="UTF-8"运行jboss

使用JSP我得到文件的名称:

String fileName = element.getChildText("FileName");
out.println("File to be opened : " + filename);
Run Code Online (Sandbox Code Playgroud)

显示:

要打开的文件:aaaaaà.txt

但是,新的文件(fileName)将无法正常工作.只是file.exists()是false.

尝试去:

File[] files = dir.listFiles();
for (int i=0; i<files.length; i++){
      out.println(fileName);
Run Code Online (Sandbox Code Playgroud)

我得到:aaaaaÃ.txt

为什么要读取并尝试打开文件在HDD中作为ISO-8859-1的文件?它是JBoss配置吗?一个java配置?如何强制java.io.File使用UTF-8作为文件名的字符集来读取文件?

我使用过其他工具,使用UTF-8,名称总是很好.

(注意我总是在谈论文件的名称,而不是内容,它可能是一个无效文件)