У меня нет опыта java, и я только начинаю экспериментировать с обработкой.Обработка кодировки вывода отличается от кодировки Java.io?
Я пытаюсь написать сценарий в обработке, который отправит 512-байтовый массив, используя команду http post для веб-сервера. Все это хорошо работает (благодаря коду, который я выкопал в Интернете!), Но у меня есть некоторые проблемы с кодировками. Я создаю массив символов, заполненный 0xFF. Это печатает как 512 'ÿ' символов в окне вывода, как должно. Проблема заключается в том, что HTTPScoop показывает post hex как серию символов 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();}'. (Это не проблема, но все равно исправить). –
Спасибо, Андрей, исключения больше не игнорируются! (В приведенном выше фрагменте нет исключений). – tsugua