Java:JFileChooser 获取国际文件名

标签 java swing jfilechooser

我正在使用 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/

相关文章:

java - 如果打开的文件不是 XML,则再次 showOpenDialog()

java - Java方法来查找年,月和日的两个日期对象之间的差异

java - 如何使用 JDialog、JPanel 解决图形故障?

Java SNMP4J 陷阱应用程序正在卡住 GUI

java - 在 JTable 中的单元格上方显示工具提示

java - 设置 JFileChooser 的位置

java - JFileChooser 的 showOpenDialog() 未打开用于打开文件的对话框

java - .cancel() 之后重新启动计时器

java - 智能 : Build > Rebuild Project menu item versus Maven clean install

java - 关于Cucumber框架