JfileChooser ignorant les dossiers de caractères spéciaux sous OS X

J’ai un programme Java qui parcourt le chemin de notre système de fichiers local; pour cela, nous avons utilisé JFileChooser. Si le nom du dossier est en anglais simple, cela fonctionne parfaitement sous Windows, Mac OS X et Linux. Mais si je crée un dossier nommé caractère spécial comme – ábc Eóz, il affiche ce nom de caractère spécial sous Windows et Linux uniquement, mais ne peut pas voir ces dossiers sous OS XI. Il les ignore de la liste des dossiers.

Mon programme est construit sur java 7 update 21. Mac OS X version – 10.8.2

Comment puis-je résoudre ce problème?

Merci

MISE À JOUR : Nous créons une application pour Mac utilisant un package JavaFX. Lorsque nous exécutons app.jar directement, il me montre un chemin contenant un caractère spécial. Mais si nous essayons de lancer une application à l’aide d’une application, les dossiers de caractères spéciaux sont ignorés.

Je viens d’essayer un échantillon:

 import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.awt.*; public class Trial { public static void main(Ssortingng... args) { JFrame frame = new JFrame("FrameDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel emptyLabel = new JLabel(); frame.getContentPane().add(emptyLabel, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF Images", "jpg", "gif"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(frame); if(returnVal == JFileChooser.APPROVE_OPTION) { System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName()); } } } 

sur OS X 10.9.1 exécutant JDK 1.7.0_51 . J’ai créé la hiérarchie de dossiers suivante: ~/Documents/Joyeux Naufragés/ábc Eóz : entrez la description de l'image ici .

Afin de résoudre le problème que vous avez décrit, j’ai également installé le JDK que vous avez signalé, JDK_1.7.0_25 et moi avons réussi à reproduire le même problème. Voici l’instantané de la même fenêtre sous u25. entrez la description de l'image ici

Comme on peut le voir, les dossiers contenant des caractères spéciaux ne sont pas affichés. Donc, j’ai également vérifié avec JDK 1.7.0_40 et surprise – cela fonctionne. Après avoir examiné les bogues corrigés dans la version donnée, j’ai découvert que plusieurs bogues liés à mac os x avaient été corrigés dans cette version. Parmi eux, un couple (7024118, 7032018, 7032436, 7161437) fait référence à des problèmes dans JFileChooser. Il existe d’autres problèmes liés à mac (45 au total), dont l’un fait référence à FileDialog. Malheureusement, les liens vers les descriptions de bogues ne fonctionnent pas. Je ne peux donc pas publier plus d’informations sur le sujet. Toutefois, la solution à votre problème consiste à mettre à jour au moins la version 1.7.0_40, même si je suppose que le mieux serait de mettre à jour le plus récent (1.7.0_51).

Bonne chance avec votre travail. J’espère que ceci vous aide.

Pendant que nous construisons une application utilisant un package JavaFX, notre dossier Info.plist personnalisé est conservé dans le dossier ..buildscript_path / package / macosx / , sur le chemin local.

Le problème consistant à ignorer les caractères spéciaux est résolu en ajoutant les clés suivantes à Info.plist.

  LSEnvironment  LANG en_US.UTF-8  

En ajoutant cette ligne de code à info.plist, la construction de l’application a résolu mon problème.

Merci