À la lecture de tout fichier texte ayant l'étrange encodage?

J'ai un fichier texte avec une étrange encodage "UCS-2 Little Endian" que je veux lire son contenu à l'aide de Java.

À la lecture de tout fichier texte ayant l'étrange encodage?

Comme vous pouvez le voir dans la capture ci-dessus le contenu du fichier apparaissent bien dans Notepad++, mais quand je l'ai lu à l'aide de ce code, il suffit de déchets est en cours d'impression dans la console:

String textFilePath = "c:\strange_file_encoding.txt"
BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( filePath ), "UTF8" ) );
String line = "";

while ( ( line = reader.readLine() ) != null ) {
    System.out.println( line );  //Prints garbage characters 
}

Le point principal est que l'utilisateur sélectionne le fichier à lire, de sorte qu'il peut être de n'importe quel encodage, et depuis je ne peut pas détecter l'encodage du fichier, je le décoder à l'aide de "UTF8" mais, comme dans l'exemple ci-dessus, il ne parvient pas à le lire.

Est-il loin de lire de tels étrange fichiers dans un droit chemin ? Ou, au moins, je peux détecter si mon code ne pourra pas lire correctement ?

OriginalL'auteur Brad | 2013-03-19