FTP 서버에 연결하기 위해이 작은 테스트 클래스를 작성했습니다.FTP 서버 출력 및 악센트
-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
공지 사항 목록의 끝에있는 디렉토리의 이름 :
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();
}
}
}
여기에 출력합니다. 이중 문자 "é ©"대신 "é"(예 : 악센트가있는 e)가 있어야합니다.
이전에는 JSF와 관련하여 표준간에 혼합 된 문제가 있음을 상기시켜줍니다. 문자 인코딩에 대한 경험이 거의 없기 때문에 무슨 일이 일어나고 있는지 잘 모르겠습니다. 나는 서버 출력이 ASCII로되어 있다고 가정하므로 콘솔에서 올바르게 출력되도록 출력을 조정하는 방법은 무엇입니까?
그래서 내가합니다. 그래서 이것은 자바의 문자가 유니 코드에 있다는 것을 의미합니다. 다양한 입력 클래스를 결합하는 데 대한 팁을 주셔서 감사합니다. 그건 사실 내가 가지고있는 또 다른 질문에 대답합니다. –
예, Java 문자는 실제로 유니 코드입니다. 바이트를 문자로 변환 할 때는 기본적으로 해당 바이트를 ASCII 문자로 취급합니다. 나는 Java IO의 중대한 clunkiness에 대해 사과합니다. 여러 가지 목적으로 사용 가능한 여러 클래스가 있다는 것이 좋지만 일부 사람들은 상황이 복잡 할 필요가 있는지 궁금해합니다. –