在文件名中创建包含非英文字符的文件

时间:2013-11-28 04:10:03

标签: java file io internationalization chinese-locale

如何在Java中用文件名创建中文字符的文件?我已经阅读了很多堆栈溢出答案,但找不到合适的解决方案。我写的代码如下:

private void writeFile(String fileContent) {
try{
    File file=new File("C:/temp/你好.docx");
        if(file.exists()){
            file.delete();
        }
        file.createNewFile();
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(fileContent);
        fos.close();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

文件被写入输出目录,但文件名包含一些垃圾值。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为关键是我在评论中提到的。

您可以在源代码中将中文字符(或其他非ascii字符)作为文字。但是你应该确定两件事:

  1. 用于保存源文件的编码能够代表这些字符(我的建议只是坚持使用UTF-8)
  2. 您传递给-encoding的{​​{1}}参数应与文件的编码匹配。 例如,如果使用UTF-8,则javac命令应该类似于

    javac

  3. 我刚刚尝试过类似的代码,它在我的机器上运行良好。