é;被e取代?关于windowsjava

é;被e取代?关于windowsjava,java,io,copy,character,directory,Java,Io,Copy,Character,Directory,因此,我正在制作一个Java应用程序/程序,用于备份特定文件夹(文件夹名称很长,但以“Pokémon”开头),我的问题是该文件夹包含重音(这一个)。我有一台mac电脑,当我运行程序时,它运行得很好,但每当我在Windows上尝试时,我的程序都会搜索一个文件夹,而不是“é”,我会看到一个“e”(在控制台中,当我打印路径字符串时,我会得到这个戳?mon)。这是Windows格式的问题吗?我怎样才能解决这个问题 void SaveNow (String folderName) { String

因此,我正在制作一个Java应用程序/程序,用于备份特定文件夹(文件夹名称很长,但以“Pokémon”开头),我的问题是该文件夹包含重音(这一个)。我有一台mac电脑,当我运行程序时,它运行得很好,但每当我在Windows上尝试时,我的程序都会搜索一个文件夹,而不是“é”,我会看到一个“e”(在控制台中,当我打印路径字符串时,我会得到这个戳?mon)。这是Windows格式的问题吗?我怎样才能解决这个问题

void SaveNow (String folderName) {
    String fullOriginalPath = getMCPath() + "saves/Pokémon Cobalt and Amethyst [DEMO]";
    String fullNewPath = getMCPath() + "PokeCA/" + folderName;
    System.out.println("Path to original PokeCA map: " + fullOriginalPath); //At this point, the é is replaced by e?
    System.out.println("Path to backup PokeCA map: " + fullNewPath);

    if (OsUtils.isWindows()) {
        fullOriginalPath = MakeWinPath(fullOriginalPath); //Replaces all / by \ because Windows
        fullNewPath = MakeWinPath(fullNewPath); //Same
    }

    File source = new File(fullOriginalPath);
    File dest = new File(fullNewPath);

    try {
        FileUtils.copyDirectory(source, dest);
        System.out.println("Successfully backuped map!");
        JOptionPane.showMessageDialog(frmSave, "Successfully backuped map!");
    } catch (IOException e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(frmSave, "Error, could not backup map... ;(");
    }
注意:另外,我希望它适用于所有操作系统,这就是我使用OsUtils.isWindows()修改路径的原因


谢谢

我解决了这个问题!谢谢所有帮助我的人

首先,由于编码问题,我不得不将“saves/Pokémon Cobalt and Amethyst[DEMO]”替换为“saves/Pok”+'\u00e9'+mon Cobalt and Amethyst[DEMO]”

其次,在将所有“/”s更改为“\”s的函数中,我使用了 返回input.replaceAll(“/”,“\”); 改成 返回输入。替换(“/”,“\”;
修复了崩溃…

您可以添加用于获取此文件夹的代码吗?看起来您使用的字符串编码错误(例如使用新字符串(utf8Bytes)而不是新字符串(utf8Bytes,“UTF8”)。可能是代码中的编码问题。@ViacheslavEdenin刚刚添加了“保存/神奇宝贝钴和紫水晶”的代码问题[DEMO]"? 您能检查这个java类文件的编码页吗?UTF-8与否?@Viacheslavvidein我如何知道它使用的是什么编码?我是否应该将其更改为新字符串(“保存/…”、“UTF-8”)?