자바에 대한 경험이 없으며 Processing으로 실험하기 시작했습니다.처리 출력 인코딩이 Java.io 인코딩과 다릅니 까?
http 게시 명령을 사용하여 웹 서버에 512 바이트 배열을 보내는 처리 스크립트를 작성하려고합니다. 이것은 모두 잘 작동합니다 (코드를 통해 인터넷에서 파헤 치다!)하지만 인코딩에 문제가 있습니다. 0xFF로 채워진 문자 배열을 만들었습니다. 출력 창에 512 'ÿ'문자로 인쇄됩니다. 문제는 HTTPScoop이 게시물의 16 진수를 일련의 0xD8 문자 또는 'Ø'문자로 표시하는 것입니다. 콘솔이 한 문자를 출력하고 출력 스트림이 다른 문자를 보내는 것처럼 보이는 이유는 확실하지 않습니다. 아래
코드는 :
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
public static void main(String[] args) {
try {
// Construct data
char[] anArray = new char[512];
char charFillValue = 0xFF;
Arrays.fill(anArray, charFillValue);
String str = new String(anArray);
println(str);
String data = str;
println(data);
// Send data
URL url = new URL("http://10.10.155.120:8081/set.cgi?dst=p1");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
} catch (Exception e) {
}
}
은 어떤 도움이 많이 주시면 감사하겠습니다!
'catch (Exception e) {}'깨진 코드에서 예외를 무시하지 마십시오! 그것은'catch (Exception e) {e.printStackTrace();}'이어야합니다. (즉각적인 문제는 아니지만 어쨌든 해결하십시오.) –
Andrew에게 감사드립니다. 예외는 더 이상 무시되지 않습니다! (위의 스 니펫에는 예외가 없습니다.) – tsugua