我正在使用 JFileChooser 并获取其中包含中文字符的文件名。 JFileChooser 正确显示它们,我希望能够捕获这些文件名并将它们显示回用户。
我有文件名:03玩爱之徒.mp3
但我最终显示:03 ????.mp3
在我的代码中我得到...
File f1 = fileChooser.getSelectedFile();
log("f1="+ f1.getName()); // gets me 03 ????.mp3
byte[] fname1 = f1.getName().getBytes(); // gets me [B@3f72c47b
byte[] fname2 = f1.getName().getBytes("UTF-16"); // gets me [B@411b1d80
我知道我很接近,但我需要一点帮助。
最佳答案
问题不在于文件名,而在于用于读取日志的字体。如果您将日志定向到文件,请尝试在兼容 unicode 的编辑器中读取它,同时确保日志使用 BufferedWriter 或类似类(用于写入文件/屏幕)。
关于Java:JFileChooser 获取国际文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7477610/