J'ai écrit cette petite classe de test pour me connecter à un serveur FTP.Sortie et accents du serveur FTP
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class FTPTest {
public static void main(String[] args) {
URL url = null;
try {
url = new URL("ftp://anonymous:[email protected]");
} catch (MalformedURLException e) {
e.printStackTrace();
}
URLConnection conn = null;
try {
conn = url.openConnection();
} catch (IOException e) {
e.printStackTrace();
}
InputStream in = null;
try {
in = conn.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
BufferedInputStream bin = new BufferedInputStream(in);
int b;
try {
while ((b = bin.read()) != -1) {
char c = (char) b;
System.out.print("" + (char) b);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
est ici la sortie:
-rw-r--r-- 1 ftp ftp 4700 Apr 30 2007 premier.java
-rw-r--r-- 1 ftp ftp 88576 Oct 23 2007 Serie1_1.doc
-rw-r--r-- 1 ftp ftp 1401 Nov 21 2006 tp20061121.txt
drwxr-xr-x 1 ftp ftp 0 Apr 23 20:04 répertoire
Notez que le nom du répertoire à la fin de la liste. Il devrait y avoir un "é" (e avec accent aigu) au lieu du double caractère "Ã ©". Cela me rappelle un problème rencontré précédemment avec JSF où il y avait un mélange entre les normes. J'ai peu d'expérience avec l'encodage de caractères, donc je ne suis pas sûr de ce qui se passe. Je suppose que la sortie du serveur est en ASCII alors comment puis-je adapter la sortie afin qu'elle apparaisse correctement dans la console?
Je suis. Cela signifie donc que les caractères Java sont en Unicode. Merci pour le conseil sur la combinaison de différentes classes d'entrée. Cela répond à une autre question que j'avais. –
Oui, les caractères Java sont en effet Unicode. Lorsque vous convertissez des octets en caractères, vous traitez essentiellement ces octets comme des caractères ASCII. Je m'excuse en quelque sorte pour le grave clunkiness des IO de Java. C'est bien qu'il y ait différentes classes disponibles à de nombreuses fins, mais certaines personnes se demandent si les choses doivent être aussi complexes qu'elles le sont. –