Создание файла с неанглийскими символами в имени файла

Как создать файл с китайским символом в имени файла в 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 ответ

Я считаю, что ключ к тому, что я упомянул в комментарии.

Вы можете использовать китайские символы (или другие символы, не являющиеся символами ascii) в качестве литералов в исходном коде. Однако вы должны убедиться в двух вещах:

  1. Кодировка, которую вы используете для сохранения исходного файла, способна представлять этот символ (я предлагаю просто придерживаться UTF-8)
  2. -encoding параметр, который вы передали javac должно соответствовать кодировке файла. Например, если вы используете UTF-8, ваша команда javac должна выглядеть следующим образом

    javac -encoding utf-8 Foo.java

Я только что попробовал подобный кусок кода, который у вас есть, и он хорошо работает на моей машине.

Другие вопросы по тегам