2
我正在使用JFileChooser並獲取帶有中文字符的文件名。 JFileChooser正確顯示它們,我希望能夠捕獲這些文件名並將其顯示回給用戶。Java:JFileChooser獲取國際文件名
我有文件名:03玩愛之徒.MP3
但我最終顯示:03 ???? MP3
在我的代碼我得到...
File f1 = fileChooser.getSelectedFile();
log("f1="+ f1.getName()); // gets me 03 ????.mp3
byte[] fname1 = f1.getName().getBytes(); // gets me [[email protected]
byte[] fname2 = f1.getName().getBytes("UTF-16"); // gets me [[email protected]
我知道我很近,但我需要一點幫助。
忽略日誌部分 - 我試圖只保存unicode格式的文件名並將其顯示回給用戶。我以表格格式DefaultTableModel存儲它。 BufferedWriter似乎是爲文件,我會繼續尋找解決方案... – rtfminc
JTable使用DefaultTableModel,它使用JRE可用的字體,經常顯示?或渲染unicode字符串時的框。嘗試使用能夠顯示中文字體的字體在JLabel中顯示文件名,以確保其不會使用JFileChooser讀取文件。 –
你是對的。帶有亞洲字符的文件名正確顯示在標籤中。我有使用Calibri的桌子(windows字體)。我在表格中添加了一個unicode字體(「Dialog」) - 「analysisTable.setFont(uniFont);」它就像一個魅力。感謝您的跟蹤方向。 – rtfminc